【发布时间】:2016-12-23 13:08:31
【问题描述】:
我正在尝试编写一个函数来获取一个字符串,并返回每个单词的首字母大写。
例如:'天空中的太阳' => TSITS
这是我的代码。经过一番修补后,我设法能够编译;但似乎它只打印字符串的空格
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <cs50.h> // typedef char *string; string GetString();
int main(void)
{
string s = GetString();
for (int i=0;i<strlen(s);i++){
if(i == s[0] || s[i-1] == ' ' ){
s[i] = toupper(s[i]);
printf("%c",i);
i++;
}
}
}
它有什么问题?
【问题讨论】:
-
if (i == s[0]那应该怎么做? -
i == s[0]应该测试什么? -
什么是
string和GetString()? -
为什么要打印索引而不是字符?
-
i == s[0]永远不会是真的,除非你真的有一个非常长的字符串或一个空字符串。当i == 0时,s[i-1]越界。