文章目录
c++中的字符串
C++获取字符cin,getchar,get,getline的区别 - shrimp_929 - 博客园 (cnblogs.com)
1.cin>>
1)最常见的是获取输入的一个字符或数字,如
int a,b;
cin>>a>>b;`
注意:cin>>会自动过滤掉不可见字符(如空格 回车 tab等)。若不想过滤掉空白字符,可以用noskipws流进行控制。
如下程序,没有过滤掉不可见字符,输入的空格字符存入了input[1]中,也可输出。
2)获取输入的字符串,可以用数组或string类型。
如:
char a[20];
cin>>a;
cout<<a<<endl;
或者string类型:
string s;
cin>>s;
cout<<s<<endl;
注意:遇到空格、回车等会结束获取输入的字符串,后面的字符串会过滤掉(存放在输入流中)。如果后面还需要输入字符串,则会从前面存放的字符串开始获取。
2.长度
获取C/C++字符串、字符数组长度_snailme的博客-CSDN博客_char数组长度
在C语言中,对 sizeof() 的处理都是在编译阶段进行
strlen所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值(长度不包含’\0’)
计算结构体数组的个数:sizeof(结构体数组)/sizeof(结构体):
str是数组拥有固定的内存 sizeof是计算它占的字节数
而指针只是一个存放变量地址的一个变量 在任何时候都是占四个字节
指针和数组是不一样的,但数组做为参数传递时就会退化为同类型的指针.
来自 https://bbs.csdn.net/topics/270084028
3.比较
使用strcmp进行比较
来自 https://blog.csdn.net/qq_31243065/article/details/82810165
C语言中字符数组的初始化与赋值
来自 https://blog.csdn.net/weibo1230123/article/details/80512727
经典排序算法
总结
- 在C语言中并没有直接提供字符串的操作,其字符串操作是通过转化为字符串完成的,例如字符数组,字符指针,其本质是对字符的操作。
- 作为字符数组,与普通数组相同,区别在于它的每一个元素是一个字符,所以不可以直接用“=”对字符数组赋值(parr[]=”zhifushuzu”,是错误的赋值方式),但是可以对每一个元素进行赋值(charr[12]=’\0’是正确的)。
- 字符串一定是以’\0’结尾的;字符数组和字符指针我们当做字符串整体初始化,系统会自动添加’\0’;对于字符数组,如果采用单个字符的方式进行初始化或者赋值一定要考虑结束符’\0’
- strcpy和strcat内部也是对字符的操作,以‘\0’作为字符串结束的标志。
来自 https://blog.csdn.net/weibo1230123/article/details/80512727