1,字符数组输入/输出
char str[1000];
cin >>str; //输入字符串时,遇到空格或回车就会停止
scanf("%s",str)//输入字符串时,遇到空格或回车就会停止
读入一行字符串,包括空格
fgets(str,n,stdin)//str为数组名,n为要输入多少个字符, stdin以后解释
cin.getline(a,n) //a为数组名,n为要读入的字符数组长度
getline(cin,str)//str 必须是 string类型,即string str 这么定义
fgets函数及其用法,C语言fgets函数详解_aa804738534的博客-优快云博客_c语言fgets函数用法
cout <<str<<endl;
printf("%s",std);
puts(str); //这个必须有头文件 #include <cstring>.这个输出也包括了换行符
#include <cstring>
#include <cstdio>
#include <iostream>
using namespace std;
char str1[1000];
int main(){
cin >>str1;
printf("下面是输出:\n");
puts(str1);
printf("%s",str1);
printf("%s",str1);
return 0;
}
下面是输出:
abcd
abcdabcd
2,字符串函数
头文件:#include <cstring>
字典序比较方式:(ASCII码依次比较)
3,其他
一个关于时间复杂度的问题
我们遍历整个字符串,使用 i<strlen(str)这个条件判断
如果把长度计算好,i<len作为判断条件
原因:strlen()函数,里面有循环语句, i<strlen(str)相当于双重循环
一个关于过滤回车的问题(使用scanf会出现,cin没有此问题)
#include <cstring>
#include <cstdio>
#include <iostream>
using namespace std;
char str1[100];
int main(){
char str;
scanf("%s",str1);
scanf("%c",str);//再读入一个字符
printf("str1:%s\n",str1);
printf("str:%c",str);
return 0;
}
输入:
abc
%
输出:
str1:abc
str:
原因,str把我们的回车输入进去了
解决:
#include <cstring>
#include <cstdio>
#include <iostream>
using namespace std;
char str1[100];
int main(){
char str;
scanf("%s",str1);
getchar(); //过滤空格
scanf("%c",&str);//再读入一个字符
printf("str1:%s\n",str1);
printf("str:%c",str);
return 0;
}
输入:
abc
%
输出:
str1:abc
str:%
4,string
#include <string>
#include <cstdio>
#include <iostream>
#include <cctype>
//#include <bits/stdc++.h> 万能头文件,可以代替C++中大部分头文件,所以可以把以上头文件换成这一个
using namespace std;
int main(){
string str;
cin >>str;
char c='A';
cout <<str.substr(0,4)<<endl;//substr(i,len) i表示起始位置,len表示长度
cout <<str.substr(4)<<endl;//len 可胜率,则表示终止位置是结尾
cout <<str.find('p')<<endl;//从前往后寻找指定字符的下标位置 找到返回 第一个字符的索引
没找到返回 string::npos
cout <<str.rfind('p')<<endl;//从后往前寻找指定字符的下标位置
cout <<str.size()<<endl;//字符串长度(不包括'\0')
cout <<str.empty()<<endl;//判断是否为空字符串,是返回1,不是返回0
cout <<(char)towlower(c)<<endl;//#include <cctype> 转化为小写字母
cout <<str.c_str();//.c_str() 相当于返回字符数组首地址
return 0;
}
输入:
philosophy
输出:
phil
osophy
0
7
10
0
a
philosophy
#include<bits/stdc++.h>介绍_蔡尼玛的博客-优快云博客_#include<bits/stdc++.h>
tolower()函数_蔡尼玛的博客-优快云博客_tolower函数
printf函数输出字符串是针对char *的,即printf只能输出c语言的内置数据类型,而string不是c语言的内置数据类型。如需输出string对象中的字符串,可以使用string的成员函数c_str(),该函数返回字符串的首字符的地址。