字符数组-返回字符串中的某个子串的开始位置,不使用string头文件-C
2014-09-06 21:40
288 查看
简单的来讲就是把字符串进行比较,从第一个相同的位置开始,之后逐个比对,直到不相同为止,此时比较相同字符数目与子串长度的关系,相同则返回第一个相同位置,否则返回-1
书中例子:
例中的思路是:
将s2与s1进行比较,到s2结尾了或是二者不相同了为止,此时判断,若是因为s2结尾了,那么返回开始比较时的s1串中的字符位置,否则就是因为二者不相同而结束,返回-1;
#include<stdio.h> int find_substr(char *mainstr,char *substr); int main(void) { if(find_substr("C is fun!","is")==-1) { printf("substr is not found!\n"); } else { printf("substr is found!\n"); } return 0; } int find_substr(char *mainstr,char *substr) { char *temp=substr; int size=0; while(*temp) { ++size; ++temp; } int no=0; while(*substr!=*mainstr) { ++no; ++mainstr; } int index=0; while(*(substr++)==*(mainstr++)) { ++index; } if(index==size) { return no; } else { return -1; } }
书中例子:
#include<stdio.h> int find_substr(char *s1,char *s2); int main(void) { if(find_substr("C is fun!","is")==-1) { printf("substr is not found!\n"); } else { printf("substr is found!\n"); } return 0; } int find_substr(char *s1,char *s2) { register int t; char *p,*p2; for(t=0;s1[t];++t) { p=&s1[t]; p2=s2; while(*p2 && *p2==*p) { ++p; ++p2; } if(! *p2) { return t; } } return -1; }
例中的思路是:
将s2与s1进行比较,到s2结尾了或是二者不相同了为止,此时判断,若是因为s2结尾了,那么返回开始比较时的s1串中的字符位置,否则就是因为二者不相同而结束,返回-1;
相关文章推荐
- c语言:返回指定字符在指定字符串中第n次出现的位置(从0开始计算)
- JavaSE8基础 String indexOf 正向 从指定索引值开始查找 字符在字符串中第一次出现的位置
- string 中find_last_of的索引是字符串最后的字符,不是开始的字符的位置,记录一下
- indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回 -1
- 用lastIndexOf方法返回String对象内最后一次出现子字符串的字符位置的示例
- 编写函数strndel,参量是一个字符串string和两个整数start、length。在string中删除start开始的length个字符,最后返回string。
- 编程序将一个字符串的前N个子字符送到一个字符型数组中去,然后再加上一个'\0'(不允许使用strcoy(str1,str2,n)函数)。
- 查找字符串中对应的字符并返回数组位置
- 汇编语言: 从键盘上输入一串字符(用回车键结束,使用 10 号功能调用。)放在 STRING 中,试 编制一个程序测试字符串中是否存在数字。如有,则把 CL 的第 5 位置 1,否则将该位置置 0。
- C#List转字符串,字符串转List,字符数组转Int数组,字符串转string,取某一位置字符等
- 写一个函数,用来把一个字符串用指定的字符作为分隔符分割成若干个子串输出 | 写一个函数,用来返回一个字符串中重复出现的最长字串的长度及其开始地址
- sizeof("string") 以及字符数组使用字符串初始化
- 返回指定字符在字符串中的位置指针
- 返回字符在字符串中第n次出现的位置
- string.ToCharArray() 装字符串的每个字符存入数组
- 从字符串的指定位置开始,删除指定长度字符
- 从相应位置开始删除指定字符串的相应个字符
- 使用字符串指针变量与字符数组的区别
- 找 一个字符串 在别外一个字符串出现的位置,如果存在 就返回它所在位置的值 ,不存在就返回-1 (不使用系统自带的函数)
- cpp如何快速安全地将文件读入字符串string或字符数组vector<string>的方法