单身美好歌词,18位身份证号大全,成人h小游戏网站
在删除一个字符串中的指定字母,如:字符串 "aca",删除其中的 a 字母。这一c语言程序编写时,出现乱码。后发现
是使用了指针访问被销毁的局部变量。
#include <stdio.h> #include <string.h> #include <stdlib.h> char* deletechar(char *ca, char c) { static char retc[50];///加入static将其放在全局变量区 //printf("%s\n",retc); char *rc; int j = 0; while(*ca != '\0') { if(*ca != c) { retc[j++] = *ca; } ca+=1; } retc[j]='\0'; //printf("%s\n",retc); rc=&retc[0]; return rc;///出现乱码的原因是retc被销毁 } int main() { char str[50]="asqessafabna"; char c='a'; char *rc=deletechar(str,c); printf("%s\n",deletechar(str,c)); return 0; }
将函数中的代码改为static。
还是c语言基础不够牢固!
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论