建设厅施工员证查询网站,下载app软件安装手机上,能看网站的视频app,做网站公司宁波上市对于C语言来说#xff0c;字符串其实就是最后一个元素为’\0’的char数组 字符数组的初始化 字符数组常见的有两种初始化方式 char str[] hello;或者 char str[] {h, e, l, l, o};当使用sizeof#xff08;str#xff09;时#xff0c;得到的大小为6#xff… 对于C语言来说字符串其实就是最后一个元素为’\0’的char数组 字符数组的初始化 字符数组常见的有两种初始化方式 char str[] hello;或者 char str[] {h, e, l, l, o};当使用sizeofstr时得到的大小为6此时是算上了’\0’的。如果不指定数组长度的初始化末尾加上’\0’否贼输出长度未知 char str[] {a, b, c, \0};//这种初始化末尾需要加上\0
char str[] abc;//这种初始化不需要加上\0字符串可以存放在堆区栈区和常量区 缓冲区溢出 char arr[3] {0};
scanf(%s, arr);
//当输入长度大于2会溢出如果输入的字符大于字符数组的长度会造成缓冲区溢出 scanf会以空格作为分隔符 字符串处理函数 gets 从输入设备获取输入字符串 gets不会检查预留缓冲区是否可容纳输入数据没有解决缓冲区溢出问题 fgets fgets用于读取文件也可从键盘读取此时要使用stdin。fgets会截取长度符合输入指定 char s[100] { 0 };
fgets(s, sizeof(s), stdin);puts puts函数打印字符串与printf不同puts会在最后自动添加一个’\n’ char s[] hello
puts(s);fputs fputs是puts的文件操作版本也不会输出多余的’\n’ char s[] hello;
fputs(s, stdout);strlen字符串长度 strlen返回字符串长度不包含’\0’ strlen(arr);strcat字符串追加 strcat(a,b);实现 int len_a strlen(a);
int len_b strlen(b);
for ( int i len_a; i len_a len_b; i)
{a[i] b[i - lena];
}strncat字符串有限追加 strncat(a, b, sizeof(a) - strlen(a) - 1);strcmp字符串比较 如果相同返回0 strcmp(a, b);strncmp字符串有限比较 只要指定长度内相同则返回0 strncmp(a, str, 3);strcpy字符串拷贝 把b拷贝到a strcpy(a, b);strncpy字符串有限拷贝 防止拷贝越界 sprintf格式化字符串 向char数组输出一个字符串其他行为和printf一模一样 sprintf(a, this is a %d, 10);strchr查找字符 返回一个位置的指针如果没找到返回NULL char *c strchr(a, b);strstr查找子串 char *c strstr(a, abc);strtok分割字符串 字符在第一次调用时strtok()必需给予参数s字符串往后的调用则将参数s设置成NULL每次调用成功则返回指向被分割出片段的指针 char buf[] abcdefgigk;
char *p strtok(buf, );;
while (p)
{printf(%s\n, p);p strtok(NULL, );
}atoi转化为int 将字符串整数转化为整数 atoi(buf);atof转化为float 将字符串整数转化为单精度浮点数 atof(buf);atol转化为long 将字符串整数转化为long类型 atol(buf);转载于:https://www.cnblogs.com/cj5785/p/10664804.html