簡體   English   中英

將字符串中每個單詞的首字母大寫並預先形成單詞計數

[英]Capitalizing the first letter of every word in a string and preforming a word count

初學者在這里學習C.我需要輸入一段文字,然后寫兩個函數。

第一個函數將文本的每個首字母大寫。 (這是一個例子)

第二個函數需要計算段落中的所有單詞。

我正在采取的第一步是輸入段落,我開始只是添加前兩個句子。 如何將此段落格式化為此字符串而不將其全部寫在一行上? 任何幫助表示贊賞。 謝謝

int main (void)
{

char prose[] = "She should have died hereafter;
                There would have been a time for such a word.";

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




return 0;
}

這是我試圖用來檢測非字母符號所在的while循環。

while (prose[i])
{
    if (isalpha(prose[i]))
        printf("%c is alpha\n",prose[i]);
             else

                 printf("%c is not alpha\n",prose[i]);
                i++;

        }

有關從哪里搬到這里的任何幫助?

C中相鄰的字符串文字連接成一個字符串,因此您可以輕松地將其拆分為以下行:

char prose[] = "She should have died hereafter;\n"
               "There would have been a time for such a word.";

(最后你可能想從文件或stdin讀取散文,而不是將其硬編碼到你的程序中。)

要大寫字母,一次遍歷字符串一個字符,如果前一個字符不是字母(或任何標准),則將每個字母大寫。 有關有用的功能,請參閱ctype.h

對於單詞計數,你可以做類似的事情,但不是修改字符串,而是每次點擊一個新單詞時只需增加一個計數器。

在這兩種情況下,檢查您的代碼是否正確處理了第一個和最后一個字

我想你想要這個:

    char prose[] = "\
She should have died hereafter.\n\
There would have been a time for such a word.\n\
";
    printf("%s\n",prose);

\\n是針對字符串中的實際新行, \\在行尾讓該語句在下一行繼續。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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