【发布时间】:2017-11-30 14:48:01
【问题描述】:
我正在学习 Dietel 的 C:如何编程。在指针章节中,有这个示例代码:
#include <stdio.h>
#include <ctype.h>
void convertToUppercase(char *sPtr);
int main( void )
{
char string[] = "cHaRaCters and $32.98";
printf( "The string before conversion is: %s", string );
convertToUppercase( string );
printf( "\nThe string after conversion is: %s\n", string );
}
void convertToUppercase(char *sPtr)
{
while(*sPtr != '\0') {
*sPtr = toupper(*sPtr);
++*sPtr;
}
}
当我编译它时,没有问题。但是当我运行它时,什么也没有发生。我无法找出问题所在!
【问题讨论】:
-
你是如何运行它的?
-
编写软件的技巧 #2 是学习调试。 SO 不是调试器。
-
++*sPtr试试++sPtr -
@Ôrel 好点。和书中的代码一样吗?那我建议把它扔掉,再拿一个没有错别字的。
-
"当我运行它时,什么也没有发生" 似乎只是这样。应该会发生很多事情(您可以在调试器中看到这一点)。根据输入(第一个字符 z),它可以无限循环。如果您等待的时间足够长,您可能会注意到 CPU 冷却器的巨大噪音...
标签: c string pointers uppercase