亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在ASCII表上“NULL”、“space”、"回車"、“\0”這幾個字符怎么區別開?

在ASCII表上“NULL”、“space”、"回車"、“\0”這幾個字符怎么區別開?

C PHP
www說 2021-12-01 07:07:30
為什么scanf函數只讀到字符串的空格鍵為止,而printf函數卻一直輸出到最后;比如:輸入同樣的字符串 abc asdcnd dasdsascanf只讀到abc;而對于printf函數會把abc asdcnd dasdsa輸出;請問這是為什么?它們區分字符串結束標志有什么區別嗎?#include <stdio.h>int main(){ char string[100]={}; scanf("%s",string); printf("NO.1 %s\n",string); gets(string); printf("NO.2 %s\n",string); printf("C=%c,d=%d\n",string[10],string[10]); printf("C=%c,d=%d\n",string[0],string[0]); printf("C=%c,d=%d\n",string[5],string[5]); return 0;}結果:如下圖所示。
查看完整描述

2 回答

?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

你說的問題出現在輸入函數上。
因為用scanf()輸入時,默認用空格作為輸入分隔符。所以,當用scanf輸入字符串時,碰到空格,就停止讀入。因此,它不能用于含有空格的字符串的輸入。
用gets()輸入時,就不存在這個問題,它把回車前的所有字符(包括空格)都作為字符串的內容了。
使用時要特別注意這一點。

查看完整回答
反對 回復 2021-12-07
?
叮當貓咪

TA貢獻1776條經驗 獲得超12個贊

scanf函數只讀到字符串的空格鍵和回車為止, 其實也可以讀到你指定的字符中止, 只是不是用s%
也可以用gets函數讀取輸入, 到回車為止, 可以讀入空格
輸出字符串以'\0'結尾, 不是以空格或回車結尾

查看完整回答
反對 回復 2021-12-07
  • 2 回答
  • 0 關注
  • 455 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號