【发布时间】:2016-04-21 07:08:55
【问题描述】:
所以我想用一个条件将小写字母变成大写字母,小写字母之前必须有空格,但问题是我不能 检查数组中的下一个字符(使用 +1)是否为空格。
#include <stdio.h>
#include <ctype.h>
void convertToUpper( char *array );
int main()
{
char x[] = "i believe i can do it";
convertToUpper(x);
printf("%s",x);
return 0;
}
void convertToUpper( char *array )
{
while( *array != '\0' )
{
if( *( array + 1 ) != ' ' && *array == ' ' )
{
*( ++array) = toupper( *(array) );
}
++array;
}
}
【问题讨论】:
-
if( *( array + 1 ) != ' ' && *array == ' ' )逻辑? -
我想,这应该检查空格字符后跟非空格字符。但它实际上做了一些不同的事情,并且可能会收到越界
-
您的意思是要大写单词吗?输出应该是:“I Believe I Can Do It”?
-
我刚刚发现了错误!