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

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

從鍵盤輸入兩個字串,將它們連線為字串,不能用系統函式strcat

把兩個字串賦值給第三個字串就行了. include void main 我用c 做的 陣列的大小可以根據輸入字元的多少改一下 這樣就可以連線到一起了 用動態指標有點麻煩 把兩個字串 用 相連不就行了 落影客 include void stringjoin char s1,char s2 void m...

從鍵盤輸入字串,將其中的所有數字字元抽出,按原順序組成新串並輸出 用c語言程式設計謝謝

free逍遙星空 include int main c語言程式設計 從鍵盤輸入一個字串,將其中所有的數字字元抽出,按原順序組成一個新串並輸出。 include stdio.h int main void include stdafx.h if the vc 6.0,with this line.in...

C語言寫一函式將字串大寫字母轉換成小寫字母

void swap char a,int n n是字串長度 只寫了轉換的函式 在主函式中呼叫就可以了 有個函式的 include char strlwr char string convert a string to lowercase example strlwr.c this program u...