求字符串长度
示例:给定一行长度不超过 100100 的非空字符串,请你求出它的具体长度。
C语言代码:
#include<string.h>
#include<stdio.h>
int main()
{
char s[105];
gets(s);
printf("%d",strlen(s));
return 0;
}
C++ 代码(常用):
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
string a;
getline(cin,a);
cout<<a.size()<<endl;
return 0;
}
C++ 代码:
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char a[105];
cin.get(a,105);//需要注意cin.get()不会把换行符取出删除,影响下一次读入!
cout<<strlen(a)<<endl;
return 0;
}
C++ 代码:
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char a[105];
cin.getline(a,105);//需要注意cin.getline()会把换行符取出删除,不影响下一次读入!
cout<<strlen(a)<<endl;
return 0;
}
顺带一提: cin 和 scanf读入字符串时遇到空格就停止了。
遍历字符串
示例:输入一行字符,长度不超过 100100,请你统计一下其中的数字字符的个数。
#include<iostream>
using namespace std;
int main()
{
string s;
getline(cin,s);
int cnt=0;
for(int i=0;i<s.size():i++)
{
if(s[i]>='0'&&s[i]<='9')
cnt++;
}
cout<<cnt<<endl;
return 0;
}
或者char a [ ] , strlen (a)
#include<iostream>
using namespace std;
int main()
{
string s;
getline(cin,s);
int cnt=0;
for(char c:s)
{
if(isdigit(c))
cnt++;
}
cout<<cnt<<endl;
return 0;
}
for(char c:s)也可以换成for(auto c:s)
#include<iostream>
using namespace std;
int main()
{
char a[105];
cin.get(a,105);
int cnt=0;
for(int i=0;i<strlen(a);i++)
{
if(isdigit(a[i]))
cnt++;
}
cout<<cnt<<endl;
return 0;
}
这样也可以,总之很灵活。