c++字符串输入

知道好多人初学者会像我一样看不懂那些长篇的输入介绍(也不想看),这里有直接的代码写法!!!!!!

以前只会用gets(),结果它被c++11标准给删了,洛谷里用不了。因为用得少记不住,每次都得去查一遍,这里就直接列几个我已知的字符串的输入方法,注意事项写在注释,初学应该是足够用了,后续会不断补充。当然cin也可以(读到空格等结束)

#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
using namespace std;
char input[7][100];
string Input;
int main()
{
    scanf("%s",input[1]);                         //读到空格等结束。'\n'留存缓冲区
   
    //getchar();                                    //取出留在缓冲区内的'\n',也可以用fflush(stdin);清空
    scanf("%[^\n]s",input[2]);                    //读到回车结束。'\n'留存缓冲区。在第一行就不要getchar()了
 
    //getchar();                                    //取留在缓冲区内的'\n' ,也可以用fflush(stdin);清空
    gets(input[3]);                               //gets读入'\n'且将其自动换为'\0' (已在c++11标准中删除) 。在第一行就不要getchar()了
 
    fgets(input[4],100,stdin);                    //fgets读入'\n'并自动在最后加上'\0' 。括号内为(地址,长度,stdio指键盘输入) 
 
    cin.getline(input[5],100,'\n');               //<iostream>头文件内,括号内为(地址,长度,分隔符(默认回车,可不写))  

    int len=0;
    while((input[6][len++]=getchar())!='\n');     //一个一个读 
    input[6][len-1]='\0';                         //补'\0' 
 
    getline(cin,Input,'\n');                      //<string>头文件内,括号内所填为(输入流,地址,分隔符(默认回车,可不写))
 
    for(int i=1;i<=6;i++)
        cout<<i<<" "<<input[i]<<"长度为:"<<strlen(input[i])<<endl;
    cout<<7<<" "<<Input<<"长度为:"<<Input.length()<<endl;
    return 0;
}

实现结果:(注意fgets的换行与长度的不同)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值