輸入以回車結束的字串(少於字元),將其中的大寫字母用下面列出的對應大寫字母替換

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

1樓:

因為輸入的第一個字元被你第一句「getchar();」(main()函式第4行)「吃掉」了。去掉這一句就行。

2樓:飄雪的雨季

因為getchar();這條語句,已經把第一個字元吸收了,並且沒有一個變數來接受它,所以它就被忽略了,並沒有儲存到str這個陣列中。而後面while((ch=getchar())!='\n')這條語句ch接收的已經是第二個字元了,然後儲存到str中。

所以str中就沒有第一個字元了。你可以去掉getchar()這條語句再除錯一下就正確了。**如下:

#include

#include

#define max 80

int main()

str[i]='\0';

for(i=0;str[i]!='\0';i++)for(i=0;str[i]!='\0';i++)printf("%c",str[i]);

return 0;}

3樓:電泡泡

第4行回車好像不要吧,

記得吃回車是在不同的樣例之間才要吃回車

按照你的程式的話不用另外加吃回車的getcharps :望採納哦,親

輸入一個以回車結束的字串(少於80個字元),輸出其中所出現的大寫英文字母

4樓:獸性佔據青春

//y陣列是把找到的大寫字母儲存進來。

for (i = 0; str[i] != '\0'; i++) }}

y[ny] = 0;

if (ny != 0)

printf("%s", y);

else

printf("not found");

回答的有點羅嗦了。這個題目你應該執行測試幾下就讀懂了。

5樓:it孤鶩

#include

void main()

i++;

}str[j+1]='\0';

if(flag)

printf("not found\n");

else

puts(str);}

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

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語言程式設計 輸入一個以回車鍵結束的字串(少於80個字元)。輸出其中所出現過的大寫英文字母.

8樓:不願相離

printf("input a string:");

//getchar();這一句的getchar不要,如果有這一句,你輸入的字串中的第一個字母就被它所獲取,str中是從第二個字母開始儲存

c語言程式設計 輸入一個以回車鍵結束的字串(少於80個字元)。輸出其中所出現過的大寫英文字母.是出現過的

9樓:匿名使用者

#include

int main(void)}}

y[ny] = 0;

if (ny != 0)

printf("%s", y);

else

printf("not found");

return 0;}

10樓:擼完睡覺去

什麼思路,沒看明白

不是把大寫字母輸出嗎

11樓:匿名使用者

程式大概看了下 我的理解是你的意思是輸出輸入的一串字元中重複出現的大寫字母,對吧?你表達的不是太清楚,你的做法你可以編譯,測試啊。你應該想看看是不是有其他方法 是吧?

12樓:不願相離

printf("input a string:");

//getchar();這一句的getchar不要,如果有這一句,你輸入的字串中的第一個字母就被它所獲取,str中是從第二個字母開始儲存

輸入字元,再輸入以回車結束的字串 少於字元 ,在字串中查詢該字元如果找到

問明 include int main char a 80 b int i int k printf input chars for i 0 a getchar n i a 0 scanf c b for i 0 a 0 i if a b k i printf d k if k 1 printf n...

字串結束的標誌是,字串的結束標誌是???

四舍 入 0 是字串陣列的結束標誌。而0則是 0 的ascii碼錶示,是第一個ascii碼,數字0的ascii碼是48,所以寫程式要用 0 結尾,比如char a 3 或者直接char a hi 編譯器都會認為是字串陣列,且以 0 結束。除錯程式時,可以看到記憶體裡面是0,這是ascii碼的表示,也...

c 怎麼輸入字串,C語言輸入輸出字串

c 中常見的幾種輸入字串的方法如下 cin 狹義 通過閱讀 聽講 研究 觀察 理解 探索 實驗 實踐等手段獲得知識或技能的過程,是一種使個體可以得到持續變化 知識和技能,方法與過程,情感與價值的改善和昇華 的行為方式。例如通過學校教育獲得知識的過程。廣義 是人在生活過程中,通過獲得經驗而產生的行為...