您好我是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循环,混合'&lt;'用'&gt;'现在已经修复了我运行代码并且它打印了第一个单词OK,并且在第一个单词之后停止了,但在第一个单词之后没有打印任何内容。答案 0 :(得分:4)
嗯,那个代码不是C#,只是c,我认为这就是你的代码没有运行的原因。
答案 1 :(得分:0)
我认为你的问题是在第6行,你写了<test-elm id="myelm" onclick="console.log('clicked button')"></test-elm>
。请注意它是如何显示for (int i=0;i>30;i++)
而不是i>30
,因此此循环不会执行。相反,请写i<30
。
答案 2 :(得分:0)
使用fgets
代替scanf
修复了问题,这要归功于@yano:)