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

時間 2021-07-01 01:12:19

1樓:手機使用者

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

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

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

2樓:禮儀常識

#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();}

3樓:匿名使用者

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)+換行)

c語言:從鍵盤輸入一個字串,將其中的小寫字母全部轉換成大寫字母,然後輸出到一個磁碟檔案test中儲存

4樓:匿名使用者

#include

void main()

for(i=0;i='a'&&str[i]<='z')str[i]-=32;

p=fopen("c:\\test.txt","w");

fputs(str,p);

fclose(p);}

5樓:匿名使用者

就是這樣大小寫的碼的差距是定的,155762931

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

6樓:百度使用者

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

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

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

}附圖:

7樓:土匪平頭

彙編???

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語言程式設計,從鍵盤輸入一字串,將其中的小寫字母全部轉換成大寫字母

8樓:愛夏的你呀

小寫字母全部轉換成大寫字母的源**如下:

#includevoid main()

printf("input a string:\n");

gets(str);

while (str[i])

fclose(fp);

fp=fopen("test.txt","rt");

fgets(str,100,fp);

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

fclose(fp);

}擴充套件資料1、程式語言終究開始引入了函式的概念,即允許程式對**進行斷行。如果已經完成,不再使用goto語句來表示**的斷行。函式呼叫後,函式將回到下一條指令。

2、如果goto語句已經過時,那麼對程式建立無限迴圈應該如何去做呢,這是一些硬體工程師可能會疑惑的問題。畢竟,之前都是通過建立一個goto語句然後再返回到main語句。

9樓:多xdl點事

**如下:

#include

#include

#include

int main()

fputc('#',fp);

if(fclose(fp)!=0)

printf("file cannot be closed \n");

else

printf("file is now closed \n");

return 0;

}程式執行如下:

擴充套件資料c語言對檔案輸入可以用fputc函式,只需要迴圈遍歷輸入,把輸入的每個字串進行大寫的轉換,大小寫轉換可以通過c語言內建於ctype.h的toupper函式來轉換,沒轉換一個字串可以直接寫入到檔案中,最後在追加一個#好字元,就完成功能了。

10樓:匿名使用者

|#include

int main()

return 0;}

11樓:愛笑的筆跡

#include

#include

void main()

fclose(fp);

fp=fopen("file.txt","r");

ch=fgetc(fp);

while(ch!=eof)

printf("\n");

fclose(fp);}

12樓:匿名使用者

#include

#include

void main()

while(1);

fclose(fp);}

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

13樓:匿名使用者

#include

int main()

fclose(fp);

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

14樓:

#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();}

從鍵盤輸入兩個字串,將字串連線到字串後面,輸出連線後的結果

1 新建一個工程和.c檔案 輸入標頭檔案和主函式。2 定義變數型別。3 呼叫cpy函式。4 定義一個函式,並定義變數型別。5 用一個for 語句和if語句判斷是否為母音。6 最後加一個字串結束符,並在主函式中輸出。7 編譯。執行得到最後結果。程式設計實現 輸入兩個字串,將第二個字串連線到第一個字串的...

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

實現該功能的吃語言具體 如下 include include include int main file fp int i 0 char str 100 printf 請輸入字串,並且以感嘆號 結束 n if fp fopen test.txt w null 開啟輸出檔案並使fp指向此檔案 prin...

程式設計實現從鍵盤輸入字元ch和字串str,利用字元指

include includevoid fun char str,char ch p str length 0 int main 我都暈死,把c 程式放在c環境執行肯定出錯啦 include include char delch const char str,char ch memset resul...