【C语言总结】字符串

来源:互联网 发布:web网络ip电话 编辑:程序博客网 时间:2024/05/17 04:22

字符串的存储

字符串是用字符数组存储的,并且最后一位必须是\0
,编译器会把这个字符数组看做是char*类型的指针。
这里写图片描述

例如:printf("abc") //传递的时abc的地址,并且是a的地址
操作:

char *p;p = "abc";
char ch;ch = "abc"[1];

字符串变量

char str[8] = "abcdefg";//会把这几个字符复制到这个字符数组中;

他的存储方式为:
这里写图片描述
如果字符串不够7个就会把剩余的单元填\0
这里写图片描述
如果超出7个就不会把这个数组看成字符串了,字符串后面必须要有\0;

char str[] = "abcdeg";//编译器会自动计算长度,str是首字符的地址char *str = "abcdef";//str是一个指针指向abcdef首字符的地址,并且str一定要指向一个存在的字符串

字符串的读写

printf("string is %s", str);//puts(str);scanf("%s", str);   //首先会跳过空白字符,然后读取,再次遇见空白字符停止读取gets(str);//遇见换行符才会停止

C语言字符串库

使用C语言字符串库的时候必须包含#include

char str[10];str = "abc";//错误,不能使用=号运算符把字符串复制到字符数组中

字符串复制函数 strcpy函数

char str1[] = "hello world!";char str2[10];strcpy(str2, str1);

字符串拼接函数 strcat函数

strcat(str1, "abc");//这里的str1要有足够控件容下abc

字符串比较函数strcmp函数

strcmp(str1, str2);//相等返回0,str1>str2就返回大于0的数

求字符串长度的函数strlen函数

int len = strlen(str1);

把字符串拆分成几个单词的方法:
char * strtok (char * str, const char * delimiters);
第一次拆分str必须是要拆分的字符串,第二个参数是按照什么拆分
拆分第二个的时候第一个参数一般都是null

//按照空格拆分delimiters = strtok(recvBuf, " ");delimiters = strtok(NULL, " ");strcpy(username, delimiters);//拿到登陆的usernamesdelimiters = strtok(NULL, " ");strcpy(password, delimiters);//拿到登陆的密码

将一个int类型的整数变为字符串的方法

//将n变为字符串,然后存储到str里面char str[10];int n = 10;sprintf(str, "%d", n);

存储字符串的最佳方式

存储字符串的最佳方式就是一个二维数组;

char string[][3] = {"hello", "nihao"};char *string[] = {"hello","world","I","love","you"};

这里写图片描述

1 0
原创粉丝点击