從鍵盤輸入一行字串,將其中的小寫字母全部轉換成大寫字母,然

時間 2021-07-01 01:13:20

1樓:蘿蔔天使

不是已經回答了嗎?請參考:

2樓:府金蘭僑夏

ch=getchar();

while(ch!='!')

用getchar();時,在鍵盤上按乙個字元後,要按回車才能讀取進去,問題不出在putchar()上。

getchar();的用途是從從標準輸入流讀取乙個字元,讀回車符時退出。getchar();永遠只向快取中輸入乙個字元。

用getchar();時,在鍵盤上按乙個字元後,要按回車才能讀取進去;用getch();時,在鍵盤上按乙個字元馬上就被讀取進去,不用按回車,因此可以作為「按任意鍵繼續」的執行語句。

看下面的修改:(但有無回顯的問題)

ch=getch();

while(ch!='!')

getch()是從鍵盤接受乙個無回顯(螢幕看不見輸入字元,就是沒有輸出到顯示裝置),不緩衝的輸入,並返回對應按鍵的字元

一般用於等待乙個輸入,讓螢幕暫停一下,方便看程式執行的結果

修改一下,看詳細結果:

必須讀一次

就do-while

算了do

while(ch!='!');

flcose(pfile);

//增加

關閉檔案後,自動重新整理緩衝區

沒有可讀寫時的重新整理問題

pfile=fopen(filename,"r");

上面兩句保留(不注釋)應該沒有問題,你的第二個問題,可能如下:

rewind(pfile);//為什麼這裡用rewind()回到檔案的

開頭後執行是錯的?????

//你開始開啟的是只寫的檔案,rewind()之後

仍然不能讀的拉

//改法:或者開啟為可讀可寫的,

或者關閉後重新開啟來讀

//當你用可讀可寫的方式開啟時,rewind後可能也沒有輸出,需要重新整理

//緩衝區fflush(pfile)的字元內容到檔案後

再rewind才有內容可讀

//方式:fflush(pfile);

rewind(pfile);

ch=fgetc(pfile);

while(ch!=eof)

printf將"%c"輸出到標準輸出檔案的緩衝區中(緩衝區在記憶體上),fflush(stdout)將緩衝區中的內容強制重新整理到,並將其中的內容輸出到顯示器上("\n"回車換行

==fflush(stdout)+換行)

從鍵盤輸入乙個字串,將其中的小寫字母全部轉換為大寫字母,然後輸出到乙個磁碟檔案「test」中儲存

3樓:匿名使用者

#include

int main()

fclose(fp);

}問題描述不夠清楚,主要是輸出到磁碟檔案的是僅僅那些轉成大寫的小寫字母呢,還是包括所有輸入的字元。上面的**是按將所有的輸入字元存檔來編寫的。

4樓:

#include

#include

using namespace std;

int main()

ch = str[++i];

}str[i]=0;

cout<

ofstream outfile;

outfile.open("test");

outfile.write(str, i);

outfile.close();}

:從鍵盤輸入乙個字串,將小寫字母全部轉換成大寫字母,然後輸出到乙個磁碟檔案中儲存。 輸入字元以!結

5樓:手機使用者

;"上面這句話應該不對吧?小寫字母全部轉換成大寫字母就是對應ascii碼減32,你這個'z'-'a'的值是25.

另外贊同樓上說的「還可以按照常識,比如操作文字檔案都用ascii,對於二進位制檔案,用二進位制。 」但這不是絕對的,文字檔案用ascii,主要是這些資訊本來就是以自然文字的形式表達,你用記事本開啟這些ascii碼儲存的文字,一目了然知道了想要反應的資訊。如果按照二進位制的方式讀寫這些本來要用ascii碼表達的東西,用記事本開啟就只能看到亂碼。

但並不是說以二進位制操作就不能正確獲取內容。用二進位制操作文字檔案通常比用ascii方式生成的檔案要小得多。

6樓:禮儀常識

#include

#include

int main()

printf("enter the char\n");

ch=getchar();

while(ch!='q') /*用q來跳出迴圈比較方便*/

fclose(pfile);

pfile=fopen(filename,"r");

rewind(pfile);/*為什麼這裡用rewind()回到檔案的 開頭後執行是錯的*/

printf("%d\n\n",a); /*這裡的a只是測試之用,可知這裡沒有錯誤*/

ch=fgetc(pfile);

while(ch!=eof)

printf("the end of programing!\nenter any key to continue...");

getch();

**如下:

#include

#include

int main()

printf("enter the char\n");

ch=getchar();

while(ch!='q')

fclose(pfile);

pfile=fopen(filename,"r");

rewind(pfile);

ch=fgetc(pfile);

while(ch!=eof)

printf("the end of programing!\nenter any key to continue...");

getch();}

7樓:匿名使用者

ch=getchar();

while(ch!='!')

用getchar();時,在鍵盤上按乙個字元後,要按回車才能讀取進去,問題不出在putchar()上。

getchar();的用途是從從標準輸入流讀取乙個字元,讀回車符時退出。getchar();永遠只向快取中輸入乙個字元。

用getchar();時,在鍵盤上按乙個字元後,要按回車才能讀取進去;用getch();時,在鍵盤上按乙個字元馬上就被讀取進去,不用按回車,因此可以作為「按任意鍵繼續」的執行語句。

看下面的修改:(但有無回顯的問題)

ch=getch();

while(ch!='!')

getch()是從鍵盤接受乙個無回顯(螢幕看不見輸入字元,就是沒有輸出到顯示裝置),不緩衝的輸入,並返回對應按鍵的字元

一般用於等待乙個輸入,讓螢幕暫停一下,方便看程式執行的結果

修改一下,看詳細結果:

必須讀一次 就do-while 算了

do while(ch!='!');

flcose(pfile); //增加 關閉檔案後,自動重新整理緩衝區 沒有可讀寫時的重新整理問題

pfile=fopen(filename,"r");

上面兩句保留(不注釋)應該沒有問題,你的第二個問題,可能如下:

rewind(pfile);//為什麼這裡用rewind()回到檔案的 開頭後執行是錯的?????

//你開始開啟的是只寫的檔案,rewind()之後 仍然不能讀的拉

//改法:或者開啟為可讀可寫的, 或者關閉後重新開啟來讀

//當你用可讀可寫的方式開啟時,rewind後可能也沒有輸出,需要重新整理

//緩衝區fflush(pfile)的字元內容到檔案後 再rewind才有內容可讀

//方式:fflush(pfile); rewind(pfile);

ch=fgetc(pfile);

while(ch!=eof)

printf將"%c"輸出到標準輸出檔案的緩衝區中(緩衝區在記憶體上),fflush(stdout)將緩衝區中的內容強制重新整理到,並將其中的內容輸出到顯示器上("\n"回車換行 == fflush(stdout)+換行)

輸入乙個字串,將其中的大寫字母改為小寫字母,小寫字母改為大寫字母,然後輸出!

8樓:百度使用者

以下程式通過測試. 有問題請追問!#include void main()

else if(*p>='a'&&*p<='z')p++;

}printf("%s\n",s);

}附圖:

9樓:土匪平頭

彙編???

data segment

any db 22

db 10

db 20 dup(?)

data ends

code segment

assume cs:code,ds:datastart:

mov ax,data

mov ds,ax

mov bx,offset any

add bx,2

call input

call _test

call show

mov ah,4ch

int 21h

show proc

mov cx,10

push bx

l1: mov ah,2

mov dl,byte ptr [bx]

int 21h

inc bx

loop l1

pop bx

retshow endp

input proc

push bx

mov ah,10

lea dx,any

int 21h

pop bx

retinput endp

_test proc

push bx

mov cx,10

ls: cmp byte ptr [bx],'a'

jb ll

lb: cmp byte ptr [bx],'z'

ja exit

sub byte ptr [bx],20hinc bx

loop ls

jmp exit1

ll: cmp byte ptr [bx],'z'

ja exit

cmp byte ptr [bx],'a'

jb exit

add byte ptr [bx],20hinc bx

loop ls

jmp exit1

exit: mov byte ptr [bx],' '

inc bx

loop ls

exit1: pop bx

ret_test endp

code ends

end start

c語言大神解答由鍵盤輸入一行字元將其中每

竹葉蘭之夏 include int main 所有數字相加 for i 0 i 10 i printf 所有數字和為 d n total return 0 老兵馬俑 include stdafx.h include ctype.h include string.h int main int argc...

急!C語言程式設計,刪除從鍵盤輸入的字串中的小寫字母,結果仍放

刺友互 1 新建工程和檔案,然後開始寫好我們的程式模板。2 接下來,我們開始書寫我們的 首先我們知道,對於標準輸入輸出來說,c提供了兩個輸出字串的函式,printf中用 s來控制輸出,還有乙個是puts來輸出,這兩個對於輸出來說,前乙個是不帶回車換行的,而後乙個預設帶回車換行。3 是識別 0 的,這...

c語言從鍵盤輸入兩個字串,將字串連線到字串的後面,並輸出連線

include include int main char s1 char s2 char output printf please input the first string scanf s s1 printf please input the second string scanf s s2 ...