如下参考:
1.打开python命令窗口,定义并分配字符串变量s1。
2.调用字符串中的count方法degree来查找字符#在s1中出现的次数。
3.除了第一个参数外,count()方法还可以有第二个参数来指示从何处开始搜索。
4.在count方法中,还可以在开始位置和结束位置之间添加第三个参数,即结束位置。
5.如果要查找的子字符串不在字符串中,则返回的结果为0。
6.最后,在count()方法中添加所有三个参数来查找对应的字符串。
用strstr这个函数\r\n\r\n包含文件:string.h\r\n函数名: strstr \r\n函数原型:extern char *strstr(char *str1, char *str2)\r\n功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。\r\n返回值:返回该位置的指针,如找不到,返回空指针。\r\n\r\n源代码:\r\n\r\n#include\r\n#include//调用string.h中的strstr函数\r\nvoid main(){\r\nchar ch1[255]="abcde"\r\nchar ch2[100]="cd"\r\nchar* ch//用于接受返回值\r\nif((ch=strstr(ch1,ch2))==NULL){//说明没有要找的字符串\r\nprintf("-1\n")\r\n}else{//说明找到了那个字符串\r\nprintf("%d\n",ch-ch1+1)//cde的地址减去abcde的地址+1\r\n} \r\n}这需要使用匹配算法来实现,具体参考代码如下:#include <stdio.h>
#include <stdlib.h>
#define stringSize(string) (sizeof(string) * sizeof(char))
void contains(char *, int, FILE *)
int main(void) {
FILE * fp
char * fileName = "a.txt"
char str[] = "beautiful"
if((fp = fopen(fileName, "rb")) == 0) {
printf("Can't open %s, program will to exit.", fileName)
exit(1)
}
contains(str, stringSize(str), fp)
fclose(fp)
return 0
}
void contains(char * string, int stringSize, FILE * fp) {
int i = 0, j, end
char * part = (char *)calloc(stringSize, sizeof(char))
fseek(fp, 0L, SEEK_END)
end = ftell(fp) - stringSize + 2
while(i <end) {
j = 0
fseek(fp, (long)i++, SEEK_SET)
fgets(part, stringSize, fp)
while(*part) {
if(*string == *part) {
j++
string++
part++
continue
}
break
}
if(j == stringSize - 1) {
printf("OK\n")
break
} else {
string -= j
part -= j
}
}
free(part)
}
注意事项:
1、如果程序输出 OK 则代表这个文件中包含该字符串,无任何输出则代表不能匹配该字符串。
2、如果一个字符串在文件中是以换行分隔的,则不能匹配。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)