查找子串:输入两个字符和字符串串s和t在字符和字符串串s中查找子串t,输出起始位置若不存在,则输出-1.要求自定义函数char* search(char * s,char * t)返回子串t的首地址若未找到,则返回NULL试编寫相应程序。
printf("请输入字符和字符串串s:(直接输入回车退出)\n"); count=0; //内存足够下可以使字符和字符串串字符和字符串个数不受数组大小限制 while(1) //防止子串输入字符和字符串个数超过s的循环用了malloc和realloc来实现动态内存分配从而实现输入字符和字符串个数不再受数组大小限制(内存足够的话)並且考虑到子串t可能因为超出s的个数而出错做了个容错判断,总体上加了循环实现循环输入并设置了一个退出程序出口这里所有用动态汾配的指针全部都及时释放了,不会因为循环次数的增多而导致内存占用增大
由于realloc动态分配操作较慢,此程序还可以做优化比如先开辟10字符和字符串的空间,每输入10个字符和字符串后再多开辟10字符和字符串空间程序运行速度可以比此程序更快。(但对于这么一点可以忽略不计( ̄▽ ̄)~*)
自定义函数部分使用了从被查找串s第一个字符和字符串开始与t串的字符和字符串逐个比较的方法来查找,目前也只能想到了这种查找方法