1樓:匿名使用者
strtok(str , "\r\n"); 這樣寫應該可以char str[128];
char *p;
strcpy( str, "123\r\n456\r\n789\r012\n" );
p=strtok(str,"\r\n");
while(p)
2樓:匿名使用者
strtok函式能夠過濾換行符或者回車符,只要分割字串delim中包含字元"\n\r"即可。
1、strtok函式:
原型:char *strtok(char s, const char *delim);
功能:將一個字串分解為一組字串,s為要分解的字串,delim為分隔符字串;
說明:當strtok函式在引數s的字串中發現引數delim中包含的分割字元時,則會將該字元改為 字元。在第一次呼叫時,strtok()必需給予引數s字串,往後的呼叫則將引數s設定成null。
每次呼叫成功則返回指向被分割出片段的指標;
返回值:從字串s開頭開始的一個個被分割的字串。分割結束時,返回null。所有delim中包含的字元都會被濾掉,並將被濾掉的地方設為一處分割的節點;
2、例程:
#include
#include
int main()
return 0;}
c語言換行符和回車符的疑問
3樓:匿名使用者
問的問題好奇怪,程式既沒有return ,exit,也沒有堆疊溢位,怎麼會失效?
建議你在return 0;之前加一句printf("main end.\n");你就知道程式沒有失效了。
另外關於\r還是\n,系統會自動幫你轉換成\n,按照你這個程式的寫法你只需要在程式裡面判斷\n就可以了,多餘你不用考慮。
4樓:數學之星
c語言中用「printf」輸出時,換行符是'\n',回車符是'\r'。
c語言中用「scanf」獲取輸入值時,獲取的「敲鍵盤回車鍵產生的字元」是換行符。
你把if語句去掉之後,「gets(name) ;puts(name) ;」這兩句語句沒有失效,而是把換行符獲取、輸出了。由於你沒有在這兩句語句後面放置暫停語句,這兩句語句把換行符獲取、輸出後程式直接結束了,沒有讓你看到效果,所以你認為這兩句語句失效了。
c語言中換行符和回車符的區別
5樓:天寂無痕
1、換行符將當前位置移動到下一行開頭。回車符將當前位置移動到本行開頭。
2、c語言中換行符是「\n」,回車符是「\r」。
所有的ascii碼都可以用「\」加數字(一般是8進位制數字)來表示。而c中定義了一些字母前加"\"來表示常見的那些不能顯示的ascii字元,如\0,\t,\n等,就稱為轉義字元,因為後面的字元,都不是它本來的ascii字元意思了。
6樓:認識我後悔嗎
一、控制字元不同
1、換行符:換行的英文newline,控制字元可以寫成lf,即line feed。
2、回車符:回車的英文return,控制字元可以寫成cr,即carriage return;
二、本義不同
2、回車符:是游標重新回到本行開頭。
擴充套件資料:
不同語言的換行符
一、html語言
可插入一個簡單的換行符,
標籤是空標籤(意味著它沒有結束標籤,因此這是錯誤的:
)。在[1]
xhtml 中,把結束標籤放在開始標籤中,也就是
。請注意,
標籤只是簡單地開始新的一行,而當瀏覽器遇到 標籤時,通常會在相鄰的段落之間插入一些垂直的間距。
二、c語言
"\n"
c語言中的換行符是"\n",就是輸入完一行內容後,游標轉到下一行的起始位置 。
三、c++語言
"endl"
c++語言中的換行符是endl。
例如:cout<<"這是換"<將顯示輸出:
這是換行符。
四、word換行符
word換行符是一種換行符號,它的作用是換行顯示,但是它不是真正的段落標記,它的換行不是真正意義上的重起一段,因此被換行符分割的文字其實仍然還是一個段落中的,word中基於段落的所有操作都是不會識別換行符為段落結尾的。
五、vb語言
在vb中,若命令太長,在一行輸入不方便,可以在**後輸入空格和下劃線再換行。
例如:private declare function mcisendstring lib winmm. _
dll alias mcisendstringa (byval lpstrcommand as string, _
byval lpstrreturnstring as string, byval ureturnlength _
as long, byval hwndcallback as long) as long。
7樓:亂七八糟
c語言中回車符是'\r',換行符是'\n'
回車符是游標從當前位置回到本行的行首,換行符是游標從當前位置換到下一行。
以\開頭的字元,稱為轉義字元,用來表達特殊的含義,如\n ——換行(ascii碼值為10)
\r ——回車(將當前位置游標移到平行開頭,ascii碼值為13)\t —— tab鍵(佔8列,ascii碼值為9)\\ ——輸出\(ascii碼值為92)
\b ——退格鍵(ascii碼值為34)
\v ——垂直製表位(ascii碼值為11)\f ——換頁(將當前位置移到下頁開頭,ascii碼值為12)
8樓:匿名使用者
c語言中,換行,回車分別是'\n'和\r';
換行,是換到下一行。
回車,只是回到本行開頭。
在windows/dos系統中,我們通常說的回車,也就是鍵盤的enter鍵實際包含了回車換行。在這樣的系統中,'\n'的作用不僅僅是換到下一行,而且換到了下一行的開頭了。
嘗試執行下面的**,看輸出結果就會很清楚了#include
int main()
9樓:相默卿凝綠
換行是游標從當前位置換到下一行。
回車是游標從當前位置回到本行的行首。
換行回車效果就是前面兩個效果的疊加,也就是換到下一行,並回到行首。
10樓:匿名使用者
一樣的吧, 都是'\n'
c語言中gets函式能否只接收一個換行符 如gets(a),輸入時輸入回車
11樓:小夏在深圳
由於scanf函式遇到空格後就停止輸入,如需要輸入一句話的話,要嘗試其他的函式例如gets()函式。
原型函式為char *gets(char*buffer),返回一個指向char的指標,返回的指標與傳遞給他的指標是同一個指標。
例子:char name[20];
gets(name);
printf(「%s」,name);
此時在控制介面中輸入hello world,輸出將會是hello world。
上例同時也可以寫成:
char name[20];
char *ptr;
ptr=gets(name);
printf(「%s」,name);
printf(「%s」,ptr);
此時兩句話輸出的都是hello world,從而證明ptr的指標就是賦給gets函式的指標。但是gets()函式有一個缺點,當輸入的字串的長度大於申請的空間時,會造成空間越界,此時在函式執行結束釋放空間時會報錯。
擴充套件資料
1、輸出字串的效果,寬度和精度同樣也適用於字串。
3、put是需要遇到』\0』才會輸出的,因此通過字串陣列遍歷賦值時,不要忘記加』\0』。
12樓:刺友互
c語言中gets函式可以只接收一個換行符 如gets(a),輸入時輸入回車,實現過程為:
1、首先我們新建一個dev c++的專案。
2、接下來在專案中新建c語言程式檔案。
3、然後在c語言檔案中宣告一個位元組陣列。
4、通過printf函式提示使用者輸入字串,通過scanf接收使用者輸入的字串。
5、接著在通過printf函式輸出使用者輸入的內容。
6、最後執行c語言程式,我們輸入內容以後就可以輸出了。
13樓:匿名使用者
注意這點,gets()函式會讀取一行字元,直到遇到換行符'\n為止,並且這個換行符不會讀取到陣列中。
scanf("%s%s",a1,a2);
這一行把aa和bb讀取並分別儲存到a1和a2陣列中,但是會把回車符留在緩衝區中。
gets(a3);gets(a4);
這裡的gets(a3)會讀取這個回車符,但是不會把回車符儲存到a3陣列,所以a3陣列內容不會改變,接下來的gets(a4)將以回車結尾的cc dd讀取並儲存到a4中
puts(a1);puts(a2);
分別在單獨的行中輸出a1和a2字串。
puts(a3);puts(a4);
分別在單獨的行中輸出a3和a4字串。由於a3沒有賦值,所以它依然保持在定義時的隨機值。
14樓:匿名使用者
最後一句應該有問題:分別在單獨的行中輸出a3和a4字串。由於a3沒有賦值,所以它依然保持在定義時的隨機值。
a3賦值了吧? 第一個元素a3[0] 變成了『\0』字元了吧?所以列印a3的時候不是一串垃圾值
而是空行。
15樓:匿名使用者
gets()讀不到換行符,讀取的換行符被轉換為null值,並由此來結束字串
16樓:花謝人散難忘
因為gets能夠接受回車,所以你a3裡面存的回車,a4裡面才是cc dd
17樓:蔡天訓
gets()會將'\n'丟棄,但是會寫入'\0',所以a3陣列的第一個元素不是垃圾值,而是'\0'
驗證**如下:
#include
int printascii(char(*str)[10])else
}return 0;
}main() ;
a[2][0]='a';
printascii(a);
scanf("%s%s",a[0],a[1]);
gets(a[2]);
gets(a[3]);
printascii(a);
puts(a[0]);
puts(a[1]);
puts(a[2]);
puts(a[3]);
}可以看見a[2][0]的值由97變成了0
c語言pow函式,C語言pow函式
丿 pow 函式用來求x的y次冪,x y及函式值都是double型 其原型為 double pow double x,double y 例項 如下 include include void main double x 2,y 10 printf f n pow x,y return 0 擴充套件資料...
c語言遞迴函式,請用C語言編寫遞迴函式
遞迴函式 程式語言中,函式func type a,直接或間接呼叫函式本身,則該函式稱為遞迴函式。遞迴函式不能定義為行內函數。在數學上,關於遞迴函式的定義如下 對於某一函式f x 其定義域是集合a,那麼若對於a集合中的某一個值x0,其函式值f x0 由f f x0 決定,那麼就稱f x 為遞迴函式。函...
c語言 清屏函式,c語言中的清屏函式clrscr 應該怎麼用?
墨汁諾 include include printf 請輸入游標位置 x,y 用逗號隔開 n scanf d,d x,y gotoxy x,y printf x d,y d x,y scanf d x void gotoxy int x,int y 設定游標位置 handle hout getstd...