关于网友提出的“ 字符窜导入子函数过后,只剩一部分。。。”问题疑问,本网通过在网上对“ 字符窜导入子函数过后,只剩一部分。。。”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 字符窜导入子函数过后,只剩一部分。。。
描述: char *find(char *src,char word)
{
。。。。
}
主要是在src里面找到word,并返回word的位置。
main()
{
char text[5000];
fp1=fopen(filename,"r");
fread(text,5000,1,fp1);
puts("input the word you want");
scanf("%s",word);
find(text,word);
....
}
但是发现进入find子函数过后,src只有text的一部分,而不是全部text[5000]的内容。
是不是因为src定义的一段指针,无法存储如此大的一算字符窜,很可能被覆盖?必须要给src也分配相应大的空间?
解决方案1: char *find(char *src,char word)中的参数是char*
字符串是判'\0'结束,
fread(text,5000,1,fp1);读出的buffer不一定是字符串
将fread读出的buffer长度作为参数导入find函数即可
char *find(char *src,char word)
改为
char *find(char *src,int length,char word)
另
scanf("%s",word);有问题
word是char, %s是char*
应该用%c
解决方案2: src是指向text的内容
当你打印src的时候 遇到'\0'就结束了 并不会打印5000个元素给你看
你debug看watch窗口或者memory窗口
以上介绍了“ 字符窜导入子函数过后,只剩一部分。。。”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2735422.html