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