博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《c程序设计语言》读书笔记-4.1-判断字符串在另一个字符串中的位置
阅读量:5827 次
发布时间:2019-06-18

本文共 1536 字,大约阅读时间需要 5 分钟。

#include 
#include
#include
#include
#include
#include
#define Num 20int strindex(char s[],char t[]){ int i,j,k; int position = -1; for(i = 0;s[i] != '\0';i++) { for(j = i,k = 0;t[k] != '\0' && s[j] == t[k];j++,k++) ; if(k > 0 && t[k] == '\0') position = i; } return position;}int main(){ char str1[20],str2[20]; char c; int i = 0,j = 0; int position; printf("please input string1\n"); while((c = getchar()) != '\n' && i < Num) { str1[i++] = c; } str1[i] = '\0'; printf("please input string2\n"); while((c = getchar()) != '\n' && j < Num) { str2[j++] = c; } str2[j] = '\0'; position = strindex(str1,str2); printf("%d\n",position); return 0;}

上面的程序是正确的,可以正常运行得出结果,不过,我又编了下面的函数:

#include 
#include
#include
#include
#include
#include
int strindex(char s[],char t[]){ int i,j,k; int position = -1;printf("%d\n",strlen(s)); for(i = 0;i < strlen(s);i++) { printf("%d\n",i); for(j = i,k = 0;k < strlen(t) && s[j] == t[k];j++,k++) ; if(k > 0 && t[k] == '\0') position = i; } return position;}int main(){ char *str1,*str2; int i = 0,j = 0; int position; printf("please input string1\n"); gets(str1); printf("please input string2\n"); gets(str2); position = strindex(str1,str2); printf("%d\n",position); return 0;}

为了不定义数组的大小就用的指针,可是程序错了。。gets函数只能读入8个字符,这里面有问题,可是我不知道哪里错了,待看完指针那章看能不能解决!

 

转载于:https://www.cnblogs.com/batteryhp/p/5020459.html

你可能感兴趣的文章
Linux中rc的含义
查看>>
曾鸣:区块链的春天还没有到来| 阿里内部干货
查看>>
如何通过Dataworks禁止MaxCompute 子账号跨Project访问
查看>>
js之无缝滚动
查看>>
Django 多表联合查询
查看>>
logging模块学习:basicConfig配置文件
查看>>
Golang 使用 Beego 与 Mgo 开发的示例程序
查看>>
+++++++子域授权与编译安装(一)
查看>>
asp.net怎样在URL中使用中文、空格、特殊字符
查看>>
路由器发布服务器
查看>>
实现跨交换机VLAN间的通信
查看>>
jquery中的data-icon和data-role
查看>>
python例子
查看>>
环境变量(总结)
查看>>
ios之UILabel
查看>>
Java基础之String,StringBuilder,StringBuffer
查看>>
1月9日学习内容整理:爬虫基本原理
查看>>
安卓中数据库的搭建与使用
查看>>
AT3908 Two Integers
查看>>
C++ 0X 新特性实例(比较常用的) (转)
查看>>