关于VC++数组,利用函数输出大写字母,为什么只能输出4个字母?
答案:1 悬赏:60
解决时间 2021-11-15 12:04
- 提问者网友:喜遇你
- 2021-11-14 21:27
这个程序本想用来改写小写字母,为什么只能输出4个字母和一个笑脸?求助
#include
char*ToUpper(char*inchar);
int main(){
char str[10]={'a','b','c','d','e','f','g','h','i','\0'};
printf("%s\n",ToUpper(str));
}
char*ToUpper(char*inchar){
char str[10];
int i=0;
while(*(inchar+i)!='\0'){
if('a'<=*(inchar+i)&&*(inchar+i)<='z')
*(str+i)=*(inchar+i)-('a'-'A');
else
*(str+i)=*(inchar+i);
i++;
}
return str;
}
最佳答案
- 二级知识专家网友:一池湖水
- 2021-11-14 22:42
函数内的地址需要输出需要用static
#include
char*ToUpper(char*inchar);
int main(){
char str[10]={'a','b','c','d','e','f','g','h','i','\0'};
printf("%s\n",ToUpper(str));
}
char*ToUpper(char* inchar){
static char str[10];
int i=0;
while(*(inchar+i)!='\0'){
if('a'<=*(inchar+i)&&*(inchar+i)<='z')
*(str+i)=*(inchar+i)-('a'-'A');
else
*(str+i)=*(inchar+i);
i++;
}
return str;
}
我要举报
大家都在看
推荐资讯