[英]C What am i doing wrong in this code?
您好,我是 C 編程的新手,我編寫了一個簡單的代碼,它接收一個字符串並只將每個單詞的第一個字母大寫,其他任何字母都應該小寫,這是代碼:
#include <stdio.h>
int main()
{
char k[30];
printf("Please enter a sentece in capital letters: ");
scanf("%s", k);
for (int i = 0; i < 30; i++)
{
while (k[i] == ' ')
i++;
if (k[i] >= 'A' && k[i] <= 'Z')
i++;
while (k[i] >= 'A' && k[i] <= 'Z' && k[i] != ' ')
{
k[i] = k[i] + 32;
i++;
} // While loop
} // For loop
printf("%s", k);
} // main
代碼只打印第一個單詞(甚至不打印整個字符串就停止)而不將任何字母轉換為小寫或大寫第一個字母,我做錯了什么?
編輯:似乎我忽略了 for 循環並且混合了 '<' 和 '>' 現在它已經被修復了之后打印任何東西。
好吧,該代碼不是 C#,只是 C,我認為這就是您的代碼沒有運行的原因。
我認為您的問題是在第 6 行中,您for (int i=0;i>30;i++)
編寫for (int i=0;i>30;i++)
。 注意它是如何說i>30
而不是i<30
,所以這個循環不會執行。 相反,寫for (int i=0;i<30;i++)
。
感謝@yano 使用fgets
而不是scanf
解決了問題:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.