字符串语法

1.char s[1000] = {"…"}; fgets(s,1000000,stdin) .(格式化输出)
2.string s; getline(cin , s);
3. char s[100]; cin.getline(s,10000);以上字符串的输出都是遇到空格 回车等停止时的输入方法,就是输入是把你输入的空格一并输出,否则遇到空格就停止输出了。
4. puts(s); 输出(包括换行)
5. 头文件 #include(cstring)
6. strlen(s) 求长度
7. strcmp 比大小(按照字典序) 首先 strcmp (s1 , s2); 比较字符的ASCII码上的数值 如果大于输出 1 , 等于输入 0 , 小于输出 -1. 或者 cout << strcmp(s1,“abc”) 也可以直接比较.
8. strcpy (s2,s1) 把后者复制给前者 将s1的字符复制给s2 .
9. 求字符串的长度中 for(int i = 0 ; s1[i] ; i ++ ) len ++ ; 这里的s1[i] 指的是 字符数组中的这个位置的字符 不等于0 ,等于0的时候循环结束,就可以求出字符长度了。
10.遍历字符数组:for(int i = 0 ; i < strlen(s) ; i ++ ) cout << s[i] ; 就OK了
加粗的地方效率会很低,因为求长度会每次都进行一遍,所以应该写成 for(int i = 0 , len = strlen(s) ; i < len ; i ++ ) .
11.字符串例题:求输入的字符串中只出现一次的第一个字符
#include
#include
using namespace std;
char str[1000000];
int cnt[26];
int main()
{
cin >> str;
for(int i = 0 ; str[i] ; i ++) cnt[str[i] - ‘a’] ++;

for(int i = 0 ; str[i] ; i ++)
if(cnt[str[i] - 'a'] == 1) {
	cout << str[i];
return 0;
}

puts("no");
 
return 0;

}
解题:字符串应该定义成全局变量,cnt 这个数组记录着26个英文字母,记录他们各自出现的次数,先输入字符串,再利用for循环遍历整个字符串,统计各个字母出现的次数,统计完再利用for循环判断是否符合题意,no的含义就是类似于“aabbccddee"这种出现次数相同的输入。字符串都是以/0结尾的,所以在for循环中遍历整个字符串时只用判断他是否等于0就行了,“str[i]”,如果要用到函数要加上#include cstring头文件
12.puts(s) 在**#include<cstdio 头文件中。**
13.scanf输入字符串时 不加&符号
14.string 函数:直接输出你输入的所有字符,不包括空格,输出所有的包括空格要用getline(cin,s),不能用scanf输入,但能用printf输出printf("%s\n",s1.c_str());
15.判断字符串是否为空:s1.empty()
16.求字符串长度:s1.size() 只在string 效率高
17.string s1(10,‘c’) 定义一个cccccccccc的字符串。
18.string 可以直接加字符串 ,两个字符串之间只能相加不能相减或相除
但要写成 s2 = s2 + " is great " + ’ ! ’ ; 的形式
19.string 相加时要注意 不能是两个字符串直接相加 s3 = ‘s’+'a’这样会报错,必须确保左右两边至少有一个是string类型的
20.**例题:信息加密
#include
#include
#include

using namespace std;

int main()
{
string s;
getline(cin , s);
for(int i = 0 ; i < s.size() ; i ++){
if(s[i] > ‘a’ && s[i] < ‘z’){
s[i] = (s[i] - ‘a’ + 1 ) % 26 + ‘a’;
}
else if(s[i] > ‘A’ && s[i] < ‘Z’){
s[i] = (s[i] - ‘A’ + 1 ) % 26 + ‘A’;
}
}
cout << s << endl;
return 0;
}
解题:理解如何将字母往下移一位,怎么输入带空格的字符串,运用ASCII码表写出代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值