C语言中字符串若干操作
字符串若干操作ASCII码字符与二进制数映射表,每个字符占一个字节,八个Bit可以表示256个字符。后128个称为扩展的ASCII码。图片引用自网页:https://akaedu.github.io/book/apas01.html区分空格字符与空字符char ch1 = ' ';printf("%c %d %o %x"\n , ch1,ch1,ch1,ch1);...
·
字符串若干操作
ASCII码
字符与二进制数映射表,每个字符占一个字节,八个Bit可以表示256个字符。后128个称为扩展的ASCII码。
图片引用自网页:https://akaedu.github.io/book/apas01.html
区分空格字符与空字符
char ch1 = ' ';
printf("%c %d %o %x"\n , ch1,ch1,ch1,ch1);
char ch2 = '\0'; //如果将ch2改为ch1,则会报错“不能重新定义”
printf("%c %d %o %x" , ch2,ch2,ch2,ch2);
使用数据的格式化屏幕输出将“ ”和“\0”以字符、十进制整数、八进制整数、十六进制整数格式进行输出,输出结果为
可以看出,空格字符与空字符是不同的两个字符,空格字符对应的ASCII码为32,空字符‘\0’对应的ASCII码为0
字符数组初始化
两种初始化方法,但这种方式更加简单常用,使用字符串处理函数时,记得加上编译预处理指令:#include <string.h>
char str1[] = "hello";
char str2[] = "world";
char str3[10]; //数组初始化时候需要在括号里面加上数字
printf("%s %s\n",str1,str2);
strcpy(str3,str1);//如果把str3改成str2这样直接覆盖是不允许的
printf("%s %s",str3,str2);
字符串处理函数
char *p1 = "hello";
char *p2 = "world";
char *p3 = NULL;
printf("%s %s\n",p1,p2); //在p1前加上*就不行,不能进行解引用
strcpy(p3,p2); //字符串处理函数们strcpy不能应用于字符指针?
printf("%s %s\n",p1,p3);
程序会报错,将p3改定义成字符数组就不会报错了
char *p1 = "hello";
char *p2 = "world";
char p3[10];
printf("%s %s\n",p1,p2); //在p1前加上*就不行,不能进行解引用
strcpy(p3,p2); //字符串处理函数们strcpy不能应用于字符指针?
printf("%s %s\n",p1,p3);
运行结果如下
原因是strcpy(目的字符数组,源字符串);此函数形参第一个位置必须是一个字符数组。
更多推荐
已为社区贡献2条内容
所有评论(0)