主要总结了字符串的一些输入,并带来了string类:
对于标准的输入输出,基本输入原则
输入数值型数据,输入可以采用,空格,回车,tab作为分隔符。当编译器遇到他们时会认为输入结束。
输入字符型数据,在scanf中没有给出分隔符的话,所有字符都是有效的。自然,空格,回车,tab也是有效的输入。
标准的输入输出,使用时包含头文件。
#include<cstdio>
char a[100];
scanf("%s",a);
遇到空格和回车就停止读入。
printf("%s",a);
#include<iostream>
char a[100];
cin>>a;
cout<<a<<endl;
gets()不推荐使用,在c++11标准中被删除。
将字符串一行读入字符数组,可以用fgets();
#include<cstdio>
char a[100];
fgets(a,sizeof(a),stdin);
其中,sizeof(a),指定了字符数组的最大读入量。
getchar()
sscanf(s,"%d",&a);
用法和scanf类似,因为是读入整数,因此遇到空格后就停止读入。
sprintf(s,"%d",a);
#include<cstring>
eg:指令:MOV R1,R2;
memcpy(b,a,k);
memset(a,0,sizeof(a));
strcmp(a,b)
strcpy(a,b)
字符串的用法很是繁琐,还好c++中提供了string使用时很方便
#include<string>
string s;
s+=str;
s.size()
s.substr(pos,len)
s.insert(pos,str)
s.find(str,[pos])
利用cin。
cin>>s;
getline(cin,s);
cout<<s<<endl;
总结一下,在输入时。 对于涉及getchar(),fgets()。在空间足够时,都能够读入回车。
对于cin,scanf等不会读入空格,回车。 getline()整行读入,可以读入空格,不会读入回车。
|