c语言字符串处理

1)c语言字符串:

#include <stdio.h>

#include <string.h>

int main(int argc, char *argv[]) {

    char ch[] = {'a', 'b', 'c', ''};

    char ch1[] = {'x', 'y', 'z'};

    printf("%s ", ch1);

    //输出xyzabc,因为是从内存地址中由高到低的输出直到

    //先定义的在高地址,后定义的在低地址

    //char ch[] = "abc"; 这样不会出现问题

    puts(ch);

    puts(&ch[1]);

    //输出abc,可以自动换行

    gets(ch);

    puts(ch);

    //使用gets会给出一个警告

    //不安全:数组长度是100,但是如果你输入了120个字符,存在越界

    //可以接受空格

    strcat(ch, ch1);

    puts(ch);

    //strcat(oldstr, newstr);

    //older的长度要足够保存下oldstr+newstr

    //newstr 把oldstr的最后一个字给覆盖了

    

    return 0; 

}

 //字符串的输入输出

 #include <stdio.h>

 int main(int argc, char *argv[]) {

char ch[] = "ias";

//查看字符串用for比较麻烦,可以用%s输出一个字符串

//从给定的地址开始,一直输出字符,直到遇到就停止来

printf("%s ", ch);

//输出ias

printf("%s ", &ch[1]);

//输出as

char str3[10];

// 从键盘上接受一个字符串,保存在以str为首地址的字符数组中

scanf("%s", str3);

printf("%s", str3);

//如果以%s格式进行输入的话,注意空格问题

//如果输入的字符串有空格,则空格之后的字符无法被接收保存

//输入的字符串的长度要小于数组的长度

return 0;

 }

2)c语言指针:

// int *ptr = &x; 其实就是下面的两条语句组合:

//    int *ptr;

//    ptr = &x;

/*野指针不能随便修改内容,容易引发系统奔溃,老师这样说的不知道是不是真的,有点怀疑,难道做编译器的人都是傻子吗

int *p;

*p = 98;

//二级指针和多级指针

/*

//指针求逆序数组

/*#include <stdio.h>

void swap(int *i, int *j){

    int temp;

    while(i < j){

        temp = *i;

        *i = *j;

        *j = temp;

        i++;

        j--;

    }

}

int main(int argc, char *argv[]) {

    int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

    int *i = &a[0];

    int *j = &a[9];

    swap(i, j);

    for(int i = 0; i <= 9; i++){

        printf("%d ", a[i]);

    }

    return 0;

}

3)fget和fputs函数使用:

安全的fgets函数

 char ch [10];

 fgets(ch, sizeof(ch), stdin);

 可以根据数组长度自动截取适当的长度保存

 printf("%s ", ch);

 fgets(数组名,数组大小,标准键盘输入);

 从输入缓冲区读取一个字符串保存到字符数组中

 当输入的字符串的长度大于数组长度,此时自动吧数组的最后一个元素变成

 当输入长度小于数组长度时则会接受一个换行

 strlen(ch)不包含

 fputs是不会自动换行的

 puts可以自动换行

 使用gets()和scanf()都是不安全的

 gets()可以接收空格,但scanf()不可以接收空格空格之后不接受

 printf()  %s 不可以自动换行

 puts()       可以自动换行

 fputs        不可以自动换行

原文地址:https://www.cnblogs.com/coolcold/p/4674356.html