20241206-C08-字符串(一)
原题链接:33673.徐沐瑶专属笔记C++2024-12-13 18:13:29
发布于:江苏
一、字符数组表示的字符串
1. ASCII 码
ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)
DS都要记住的三个ascii码:
'a'-> 97
'A'-> 65
'0'-> 48
char s = 'a';
cout << s << endl;
cout << (int)s << endl; //强制类型转换
2. 字符数组的定义以及初始化
char ch = 'Ilovec++'; //(错误的写法) 字符: 单个字符(占一个字节) //字节: Byte
字符串:双引号包括起来的内容
char s[1005] = "I love C++"; //字符数组 表示字符串
char s[] = "hello"; //定义了一个字符数组
cout << sizeof(s) << endl; //获取字符串的大小
cout << s << endl;
//所有的字符串最后都有一个隐藏的字符 '\0'
ps. 转义字符: 转变原来的含义
\n: 表示换行
\0: 表示字符串的结尾
\r: 返回,return
\t: TAB 制表符
3. 字符数组的输入输出
实例1:A393.鹦鹉学舌
输入字符串,输出字符串,带有空格哦~
char s[1005] = {};
//不同于整型数组使用循环输入
// cin >> s; //遇到空格就结束了
fgets(s, 1005, stdin); //可以读取空格,但是之能是字符数组定义的字符串
cout << s << endl;
4. 字符数组的遍历
字符串的下标默认从0开始,遍历方式与整型数组一致
char s[] = "hello";
cout << sizeof(s) << endl; //获取字符串的大小
// cout << s[0] << endl;
// cout << s[1] << endl;
for (int i=0; i<6; i++){
cout << s[i] << ":" << (int)s[i] << endl;
}
实例2: A5700.替换字母
输入一个字符串(不含空格),将字符串中的字母 t 都换成字母 w,并这个字符串输出。字符串长度不超过 100。
char s[105] = {};
cin >> s;
//获取字符串的实际长度
int len = strlen(s); //<cstring>不包含'\0'
for(int i=0; i<len; i++){
if (s[i] == 't') {
s[i] = 'w';
}
}
cout << s;
5. 字符数组的相关函数
strlen(s); 计算实际长度,不包含'\0';
strcpy(a, b); 将b覆盖copy到a上
strcat(a, b); a = a+b //concatenate(连接)
cout << strcmp(a, b) << endl;
/*
按照ascii的值逐位比较 ("23" > "123")
a>b: 1
a=b: 0
a<b: -1
*/
二、string(使用较多)
1. string的定义、输入输出
string s; //STL
// cin >> s; //读不到空格之后的内容
getline(cin , s);//读空格之后的内容
// cout << s[0];
cout << s;
2. string 的遍历
for(int i=0; i<s.size(); i++){ //.length() 获取字符串的实际长度
cout << s[i] << endl;
}
3. string 的常用操作
string a = "hello", b = "xmw";
// a = b;
// a += b; //a = a + b;
// cout << a;
// <, >, ==,
a = "123";
b = "123";
cout << (a == b) << endl;
实例:A7844.【字符串】统计字符
输入一串字符,以'?'结束。统计其中字母个数,数字个数,其它符号个数。
int a = 0, b = 0, c = 0;
string s;
getline(cin, s); //获取空格
int len = s.length()-1;
for (int i=0; i<len; i++){
if ('a'<=s[i] && s[i]<='z'){
a++;
} else if ('0'<=s[i] && s[i]<='9'){
b++;
}
else{
c++;
}
}
cout << "Letters="<<a<<endl;
cout << "Digits="<<b<<endl;
cout << "Others="<<c<<endl;
这里空空如也
有帮助,赞一个