![](/img/trans.png)
[英]Removing all characters from string which are not letters and changing every first letter of a word to capital letter
[英]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.