如何在C中使用char *上的toupper ?



所以我在char *上使用toupper有一个问题。让我给你看看我试过的。

#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main() {
char* shi = command->args[0]; //which is "binance"
while(*shi) {
toupper((unsigned char) *shi);
shi++;

}
printf("Capitalized version is: %s",shi); // which should be "BINANCE".
return 0;
}

语句

toupper((unsigned char) *shi);

无效。不使用toupper的调用结果

在while loop

之后
while(*shi) {
toupper((unsigned char) *shi);
shi++;
}

指针shi指向字符串的结束字符'' ..所以下面调用printf

printf("Capitalized version is: %s",shi);

将处理空字符串。

你应该写

for ( char *p = shi; *p; ++p ) {
*p = toupper((unsigned char) *p);
}

相关内容

  • 没有找到相关文章

最新更新