字符串用法.c++

字符串有三种形式

1. 用双引号括起来的字符串常量, 如"CHINA" , "C++ program "。

2. 存放于字符数组中,以‘\0’字符(ASCII码为0)结尾

3. string对象。string是C++标准模板库里的一个类,专门用于处理字符串。

字符串常量 

1.字符串常量占据内存的字节数等于字符串中字符数目加1, 多出来的是结尾字符‘\0’。

2."" 也是合法的字符串常量,称为“空串”, 空串仍然会占据一个字节的存储空间,存放 ‘\0’。

3.如果字符串常量中包含双引号,则双引号应写为‘\"’。

4.而‘\’字符在 字符串中出现时,须连写两次,变成‘\\’。

例如: cout He said: "I am a stu\dent."

用一维char数组存放字符串 

1.包含‘\0’字符的一维char数组,就是一个字符串。其中存放的字符串即 为 ‘\0’前面的字符组成。 

2.用char数组存放字符串,数组元素个数应该至少为字符串长度+1  

3.char数组的内容,可以在初始化时设定,也可以用C++库函数进行修改, 还可以用对数组元素赋值的办法任意改变其中的某个字符。 

4.字符数组同样可以用cout、printf输出,用cin、scanf读入。用cin、 scanf将字符串读入字符数组时,会自动在字符数组中字符串的末尾加上 ‘\0’

title [3] = 0; //等效于 title [3] = '\0';

用scanf读入字符串

1.用scanf可以将字符串读入字符数组 

2.scanf会自动添加结尾的'\0' 

3.scanf读入到空格为止 char line[100];

scanf("%s",line); //注意,不是 &line

printf("%s",line);

读入一行到字符数组 

1.使用函数cin.getline();

头文件为#include

cin.getline(char buf[], int bufSize);

读入一行(行长度不超过bufSize-1)或bufSize-1个字符到buf, 自动添加'\0' 回车换行符不会写入buf,但是会从输入流中去掉
 

char line[10];
cin.getline(line, sizeof(line)); //或 cin.getline(line,10);

读入最多9个字符到 line cout << line;

A b c↙

A b c

A b c1234567↙

A b c1234

2. gets(char buf[]);

读入一行,自动添加'\0' 回车换行符不会写入buf,但是会从输入流中去掉。

可能导致数组越界!

char s[10];while( gets(s) ){printf("%s\n",s);}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部