C-这个代码有点错误啊,我看别的面试题敲得运行出错
#include "stdio.h"
#include "conio.h"
void uppers(char* s,char *us)
{
for(;*s!='';s++,us++)
{
if(*s>='a' && *s<='z')
*us=*s-32;
else
*us=*s;
}
*us='';
}
int main(){
char *s,*us=NULL;
char ss[20];
printf("please input a string :n");
scanf("%s",ss);
s=ss;
uppers(s,us);
printf("the result is %s",us);
getch();
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
uppers(s,us);
us没有分配内存,所以会出错。你需要给uS分配内存空间,使用malloc函数
#include "stdio.h"
#include "conio.h"
void uppers(char* s,char *us)
{
for(;*s!='';s++,us++)
{
if(*s>='a' && *s<='z')
*us=*s-32;
else
*us=*s;
}
*us='';
}
int main(){
char *s,*us=NULL;
char ss[20];
char qq[20];
us=qq;
printf("please input a string :n");
scanf("%s",ss);
s=ss;
uppers(s++,us);
printf("the result is %s",us);
getch();
}
这里us指针没有付给一定的内存,不能存数,所以应该给us初始化。
us是野指针, 没有分配内存