您的位置:首页 > 其它

字符串中查找子串

2016-06-11 18:52 190 查看
使用C语言编写程序:
1、在字符串中查找一个指定的字符第一次出现的位置,并返回字符所在的位置,如果不存在则返回NULL
具体实现如下:
char* strstr(char const *s1, char const *s2)
{
char* str = (char*)s1;
char* ch = (char*)s2;
char* cur = str;//设置cur标志位
while (cur)
{
char* p1 = cur;
char* p2 = ch;
while (p1 && p2 && *p1 == *p2)//注意此处用*p1和*p2比较两个是否相同
{
p1++;
p2++;
}
if (*p2 == '\0')//注意此处不能用p2==NULL
return cur;
else
cur++;
}
return NULL;
}
测试如下:
void test()
{
char const* str = ]小知识:编写程序判断你的电脑是小端存储还是大端存储。
大端模式:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;
小端模式:是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。
void test()
{
int num = 3;//Ox000003
char* p = (char*)#
for (int i = 0; i < 4; i++)
{
printf("%d ", *p);
p++;
}
if (3 == *(char*)&num)
{
printf("小端存储!\n");
}
else
{
printf("大端存储!\n");
}
}[/code]本文出自 “Scen” 博客,请务必保留此出处http://10741357.blog.51cto.com/10731357/1758613
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: