题目描述
给定一行长度不超过100的字符串,请你求出它的具体长度。
输入格式
输入一行,表示一个字符串。注意字符串中可能包含空格。
输出格式
输出一个整数,表示它的长度。
样例
输入样例:
I love Beijing.
输出样例:
15
字符串相关知识点总结
** char操作:char str[]; **
可用cin(遇到空格回车停止),cout(遇到空格回车不停止)读入读出
scanf只能读入字符串,不可读入整数数组
数组本身就是指针,所以取地址就是求其指针,scanf("%s",str);
读入一行字符:gets(str); fgets(s,100,stdin);
求字符串的长度: #include<cstring> strlen(str) (只计算字符串元素,\0不计入其中)
** string操作:string s; **
可用cin,cout读入读出
不可用scanf("%s",&s);读入;用printf读出时一般写成printf("%s",s.c_str()); 也可用puts(s.c_str());
string:getline(cin,s);
char: cin.getline(s,1000);
算法1
使用gets函数
C 代码
#include<string.h>
#include<stdio.h>
int main()
{
char str[101];
gets(str);
printf("%d",strlen(str));
return 0;
}
算法2
使用fgets函数
C++ 代码
#include <cstdio>
int main()
{
char str[101];
fgets(str, 101, stdin); //101表示一行最多读入的字符,stdin表示从哪个文件读入
int len = 0;
for (int i = 0; str[i] && str[i] != '\n'; i ++ )
len ++ ;
printf("%d\n", len);
return 0;
}
算法3
使用getline函数
C++ 代码
#include<iostream>
using namespace std;
int main()
{
string str;
getline(cin,str);
cout<<str.size()<<endl;
return 0;
}
算法4
使用cin.getline函数
C++ 代码
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char str[105];
cin.getline(str,105);
cout<<strlen(str)<<endl;
return 0;
}
为啥fgets用strlen函数有时候长度会多一个啊