C笔记 字符串

来源:互联网 发布:英文域名例子 编辑:程序博客网 时间:2024/06/05 16:57

1 使用字符数组存储字符串

void main(){    char str[] = { 'f', 'u', 'c', 'k' };    printf("%s\n", str);    printf("%#x\n", str);    getchar();}

打印结果:
这里写图片描述

后面出现乱码是因为没有结束符

char str[] = { 'f', 'u', 'c', 'k' ,'\0'};

添加结束符后,则不会显示乱码。

同样也指定字符长度,也不会显示乱码。

char str[5] = { 'f', 'u', 'c', 'k', };
char str[5] = "fuck";

此时的字符串可以修改

str[0] = 'a';

打印结果将会变成:auck。

2 字符指针

void main(){    //内存连续排列    char *str = "how are you?";    //不可以修改    //*str = 'a'; //将会报错    printf("%s\n",str);    printf("%#x\n",str);    //使用指针加法,截取字符串    str += 3;    while (*str){        printf("%c",*str);        str++;    }    getchar();}

打印结果

how are you?0x12f58b8 are you?

3 字符串拼接

void main(){    char dest[50];    char *a = "china";    char *b = "is powerful!";    strcpy(dest,a);    strcat(dest,b);    printf("%s\n",dest);    system("pause");}

打印结果:

chinais powerful!

4 在一个字符串中查找已知字符的下标位置

void main(){    char *str = "I have a girl friend";    printf("%#x\n",str);    char *p = strchr(str,'a');    if (p){        printf("索引位置:%d\n",p-str);    }    else{        printf("没有找到");    }    system("pause");}

打印结果:

0xd359ec索引位置:3

5 在a中查找b第一次出现的位置

void main(void){    char *a = "I have a girl friend";    char *b = "a";    //U元素的指针    char* p = strstr(a, b);    if (p){        printf("索引位置:%d\n", p - a);    }    else{        printf("没有找到");    }    system("pause");}

打印结果

索引位置:3
原创粉丝点击