1

初学者在这里学习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++;

        }

从这里搬到哪里有什么帮助吗?

4

2 回答 2

2

C 中相邻的字符串文字被连接成一个字符串,因此您可以轻松地将其拆分为如下所示的行:

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

(最终,您可能想从文件中读取散文,或者可能stdin,而不是将其硬编码到您的程序中。)

要大写字母,一次遍历字符串一个字符,如果前一个字符不是字母(或任何您的标准),则将每个字母大写。有关ctype.h有用的功能,请参阅。

对于单词计数,您可以执行类似的操作,但无需修改字符串,您只需在每次遇到新单词时增加一个计数器。

在这两种情况下,请检查您的代码是否正确处理了第一个单词和最后一个单词。

于 2013-11-15T01:16:30.453 回答
1

我猜你想要这个:

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

\n用于字符串中的实际新行,\在行尾让语句在下一行继续。

于 2013-11-15T01:19:05.467 回答