文章目录c中常用的字符串输入方法1.scanf2. CIN3. CIN.get4. CIN.getline () (5.getline6.gets ) ) )。
C常用的几种字符串输入法1.scanf
如果输入了scanf空格,则会假设字符串已结束,空格后的字符将被视为下一个输入
# includecstdiousingnamespacestd; 输入主((chars ) ) 100; scanf('%s ',s ); printf('%s”,s ); //输入123123 123123//输出123123 2. cin cin输入遇到空格、换行符、制表符时结束输入,进入下一个输入
# includeiostreamusingnamespacestd; 输入主((chars ) ) 100; cins; couts; //输入123123 123123//输出123123 3. cin.get用法一: cin.get (无参考) )
与cin.get (的用法为getchar ) )类似
# includeiostreamusingnamespacestd; int main () {char ch; ch=cin.get (; //1个字符//获取//CIN.get(ch )//第二种形式coutchendl; //输入: 123123//输出: 1用法: cin.get (变量名)
cin.get (字符数组名,接受字符数) )可以接受1行字符,接受空格
# includeiostreamusingnamespacestd; int main () chara(20; CIN.get(a,20 ); //可以输入多个字符串,用中间的空格分隔。 coutaendl; //输入: 123 123 123//输出: 123 123 123//输入: abcdeabcdeabcdeabcdeabcdeabcde (25个字符输入)//输出: abcdeabcdeabcdeabcd )接收19个字符1
用法一:cin.getline (字符数组名称,字符数) ) ) )。
用法二:cin.getline (字符数组名称、字符数、末尾字符) ) ) ) ) ) ) ) ) ) ) )。
以上两种用法第一种以默认“ n”结束,第二种以结束字符结束
不会读取结束字符
因为最后一个字符是“ 0”,所以实际字符串只有(字符数-1)个字符
# includeiostreamusingnamespacestd; int main () (charm ); Cin.Getline(m,5 ); //与上面基本相同。 coutmendl; cin.Getline(m,5,' x ' ); //设定结束文字后,在结束文字之前输入换行符也不影响文字的输入。 此时的换行符在字符串中包含cout m; 返回0; }输入123123输出1231//字符接受为m,其中最后一个字符为“ ”,所以如果只看4个字符的输出,5为20 :输入: jkljkljkl输出: jklf fjlsjf fjsdklf输出: 20
输入字符串
用法一:getline (字符串名、字符数)
用法:getline (字符串名称、字符数、末尾字符) ) ) ) ) ) ) ) ) ) ) ) ) ) )。
以上两种用法第一种以默认“ n”结束,第二种以结束字符结束
结束字符不会保存在字符串中
# include iostream # includestringusingnamespacestd; int main () {string str; Getline(CIN,str ); coutstrendl; Getline(CIN,str,' x ' ); //设定结束文字后,在结束文字之前输入换行符也不影响文字的输入。 此时的换行符在字符串中包含cout str; (输入) 123123输出) 123123为cin.getline ) )类似。
但是,cin.getline ()属于istream流。
另一方面,getline ) )属于字符串流,是两个不同的函数
6.gets ) )接受空格,输入换行符,然后在字符串末尾添加“ 0”。
需要头文件#include cstring或#include string.h
# include iostream # includecstringusingnamespacestd; int main () {char str[100]; gets(str ); coutstrendl; 输入123123输出123123 gets很方便,但其缺点是不能输入字符串类。 另外,输入数组时有越界的风险。