1.读取一行的话:
string str;
getline(cin,str);
cout<<str.size()<<endl;
g
e
t
l
i
n
e
getline
getline可以过滤掉回车符!
也可以使用fgets
,
f
g
e
t
s
(
)
fgets()
fgets()是不会过滤掉回车符的!
char str[110];
fgets(str,110,stdin);
int len=0;
for(int i=0;str[i]&&str[i]!='\n';i++)len++;
cout<<len<<endl;
或者 g e t l i n e + c h a r getline+char getline+char
char str[110];
cin.getline(str,110);
cout<<strlen(str)<<endl;
只有对
c
h
a
r
char
char类型才能使用
s
t
r
l
e
n
strlen
strlen
当然也可以手动求长度:
int len=0;
for(int i=0;str[i]!='\0';i++)len++;
cout<<len<<endl;
2.判断每一个字符是否是数字:
if((int)(str[i])>=48&&(int)(str[i])<=57)cnt++;
if(str[i]>='0'&&str[i]<='9')cnt++;
3.一些常用函数:
//1.寻找单个字符首次出现的位置,或者字符串首次出现的位置
str.find();
//用例:
string::size_type index;
string a = "abcdef";
string b = "def";
index = a.find(b);
if(index != string::npos) ///则代表在 a 中找到了 b, index是b在a中首次出现的首个字母的下标
///如此处 index 的值为 3
if(index == string::npos) ///表示未找到
//2.截取:
str.substr(begin,lenth) // begin表示起始下标, lenth表示你要截取的长度.
string x = "abcdefg";
string s = x.substr(0,3);
// s 为 abc
//3.insert插入:
string s1 = "gugugu",s2 = "miaomiao";
s1.insert(3,s2); /// insert(pos,string),在下标为pos处插入串
//gugmiaomiaougu
s1.insert(0,1,'y'); /// 在下标为0处插入单个字符
//ygugmiaomiaougu
//注意:
s1.insert(0,s2);
//miaomiaogugugu
参考文献:
1.字符串入门习题集锦(更新中)
2.C++ string 中的find,erase ,字符串截取 substr ,插入 insert