讀入一行字符串


1.讀取char[]

 1 char s[1000000];
 2 int l;
 3 1.
 4 scanf("%[^\n]",s);
 5 /*說明:在scanf函數中,可以使用%c來讀取一個字符,使用%s讀取一個字符串,
 6 但是讀取字符串時不忽略空格,讀字符串時忽略開始的空格,
 7 並且讀到空格為止,因此只能讀取一個單詞,而不是整行字符串。
 8 其實scanf函數也可完成這樣的功能,而且還更強大。這里主要介紹一個參數,%[ ],這
 9 個參數的意義是讀入一個字符集合。[ ]是個集合的標志,因此%[ ]特指讀入此集合所限定的那些字符,
10 比如%[A-Z]是輸入大寫字母,一旦遇到不在此集合的字符便停止。如果集合的第一個字符是"^",
11 這說明讀取不在"^"后面集合的字符,既遇到"^"后面集合的字符便停止。
12 注意此時讀入的字符串是可以含有空格的,而且會把開頭的空格也讀進來。
13 注意:如果要循環的多次從屏幕上讀取一行的話,就要在讀取一行后,
14 在用%c讀取一個字符,將輸入緩沖區中的換行符給讀出來。否則的話,在下一次讀取一行的時候,
15 第一個就遇到'\n',匹配不成功就直接返回了。這里可以用scanf()或者getchar()函數讀取換行符。
16 */
17 2.
18 gets(s);//一直讀到遇到換行符),用空字符'\0'取代行尾的換行符'\n'。
19 3.
20 while((s[l]=getchar())!='\n')l++;
21 //最后記得需要考慮換行符
22 4.
23 cin.get(s,1000);
24 cin.getline(s,1000);
25 cin.getline(s,100,'@');//字數限制加上截止字符
View Code

 2.讀取string

1 string s;
2  int l;
3  getline(cin,s);
4 l=s.size();
5 getline(cin,s,'@');//加上截止字符
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM