永发信息网

C语言问题。。。运行不成功

答案:5  悬赏:70  手机版
解决时间 2021-03-05 07:38
  • 提问者网友:感性作祟
  • 2021-03-04 22:30

#include
int main()
{
int i=0;
char*a; //如果我用数组可以成功运行
gets(a);
while(a[i])
{
if(a[i]>='A'&&a[i]<='Z')
a[i]+=32;
else if(a[i]>='a'&&a[i]<='z')
a[i]-=32;
i++;
}
printf("%s\n",a);
}
最佳答案
  • 五星知识达人网友:未来江山和你
  • 2021-03-04 22:38
#include
#include //要使用堆内存,就要包括此文件
int main()
{
int i=0;
char*a; //如果我用数组可以成功运行
a = (char*)malloc(100); //必须先申请内存空间
gets(a);
while(a[i])
{
if(a[i]>='A'&&a[i]<='Z')
a[i]+=32;
else if(a[i]>='a'&&a[i]<='z')
a[i]-=32;
i++;
}
printf("%s\n",a);
free(a); //释放内存。养成好习惯:有借有还,再借不难。
}
全部回答
  • 1楼网友:一袍清酒付
  • 2021-03-05 03:18
你没给指针申请内存
  • 2楼网友:北方的南先生
  • 2021-03-05 02:29
你可以在头文件中定义 数据类型 struct student{} 和 函数 然后主函数中调用加上#include 在这个头文件里的实现函数 要是正确的能够通过编译的 其实也可建议你写一个dll 或则你直接把数据类型 struct student{} 变量为全局变量 各个函数都可以调用 挺好的
  • 3楼网友:零点过十分
  • 2021-03-05 01:35
你的指针都没有定义指向,这个指针是野指针,当然不能使用了。 你要么定义指针的时候指向某个位置,这个位置是存在的,要么自己定义的时候开辟一段空间,用new来实现一下。
  • 4楼网友:荒野風
  • 2021-03-05 00:02
加个#include 再把a这样定义来开一块存储区给a, char *a= (char*)malloc(sizeof(char)); 如: #include #include int main() { int i=0; char *a= (char*)malloc(sizeof(char));//分配空间 gets(a); while(a[i]) { if(a[i]>='A'&&a[i]<='Z') a[i]+=32; else if(a[i]>='a'&&a[i]<='z') a[i]-=32; i++; } free(a);//释放空间 dest = a; printf("%s\n",a); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯