1.常用ASCII值:
(1)‘A’- 'Z’是65 ~ 90
(2)‘a’ - 'z’是97 - 122
(3)0 - 9是 48 - 57
(4)a与A相差32
(5)空字符('\0')为0
注:字符串结束符为'\0',由于字符串比字符数组多'\0',所以定义字符数组时长度要比字符串至少多1
2、输入字符串:string 类型的变量就是用来存放字符串的,也叫“string对象”。string 并不是 C++ 的基本数据类型,它是 C++ 标准模板库中的一个“类”。string不能用scanf读入,可以用printf输出,string可以用cin读入,cout输出,可以用“+”将两个字符串连接。
(1)不可读入空格:
scanf("%s",str);
cin>>str+1;//从下标1开始读入
char s[100];
cin.getline(s,100);
(2)可读入空格:
gets(str);
char s[100];
fgets(s,100,stdin);
String s;
getline(cin,s);
3.输出字符串:
puts(str);
printf("%s",str);
cout<<s+1<<endl;(从下标1开始输出)
......
4、字符串函数
(1)求长度
int l=strlen(str);
int l=str.size();
int l=str.length();
注:求二维字符数组列数
int l=str.length;
(2)复制(拷贝)
strcpy(str1,str2);
s="abc";
(3)连接
strcat(str1,str2);
s.append(str);
s=s+str;
(4)比较
strcmp(str1,str2);
若相等,返回0;若不相等,则返回字符串中不相同字符的差。
(5)插入
s.insert( position,n,char); //在某位置插入n个字符
s.insert(pos,str);
s.insert(pos,str,a,n);
(6)判断为空
s.empty();
(7)清除
s.clear();
5、字符串常量与字符常量
注意,字符串常量(使用双引号)不能与字符常量(使用单引号)互换。字符常量(如'S')是字符串编码的简写表示。在ASCII系统上,'S'只是83的另一种写法。但"S"不是字符常量,它表示的是"S\0"。"S"实际上表示的是字符串所在的内存地址。
下面所有的输出语句都是等效的:
注意,拼接时不会在被连接的字符串之间添加空格,第二个字符串的第一个字符将紧跟在第一个字符串的最后一个字符(不考虑\0)后面。第一个字符串中的\0字符将被第二个字符串的第一个字符取代。