由于较多最新版本的编译器不支持gets()函数了,所以大家可以用下面这三种方法替代。(可以读空格,到换行结束)自己感觉哪种好记就用哪个吧。

1.scanf();

#include <cstdio>
using namespace std;
int main()
{
    char a[100],c;
    int n=0;
    while(~scanf("%c",&c))
    {
        if(c=='\n')
            break;
        a[n++]=c;
    }
    printf("%d\n",n);
    return 0;
}

测试结果:图片说明
2.scanf("%[^\n]");

#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
    char a[100];
    int n=0;
    scanf("%[^\n]",a);
    n=strlen(a);
    printf("%d\n",n);
    return 0;
}

测试结果:图片说明
3.getline();

#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
int main()
{
    string a;
    getline(cin,a);
    int n=a.size();
    printf("%d\n",n);
    return 0;
}

测试结果:图片说明