簡體   English   中英

C 我在這段代碼中做錯了什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM