我正在尝试编写一个小程序,在这个程序中,我基本上计算了函数中的字符串长度,但由于某种原因,它不会向命令行输出任何内容。
#include <stdio.h>
int search (char* string, char* substring){
int length = 0;
while(substring){
substring++;
length++;
}
return length;
}
int main(int argc, const char * argv[])
{
char string1[] = "hello world";
char* string = string1;
char substring1[] = "world";
char* substring = substring1;
int a = search(string,substring);
printf("%d", a);
return 0;
}发布于 2013-02-08 07:14:54
你需要取消对它的引用,否则你会继续循环,因为没有明显的方法让substring变为0。
while (*substring)
^这是因为您要查找的不是NUL指针,而是NUL (\0)字符。
发布于 2013-02-08 07:15:07
substring是一个指针,只要它指向某个内存,它就永远不会为空(false)。
将while(substring)替换为while(*substring)以查找\0字符。
发布于 2013-02-08 07:38:28
"string“在搜索函数中的意义是什么?您使用的是substring变量,而不是string变量。
https://stackoverflow.com/questions/14762897
复制相似问题