在C语言进行字符串的查找操作
首先,要进行字符串的查找操作,我们需要使用到C语言中的字符串函数。这些函数包括strlen()、strcmp()、strcat()、strcpy()、strstr()等等,它们可以实现字符串的长度计算、比较、拼接、复制、查找等操作。
如果要在一个字符串中查找另外一个子串,我们可以使用strstr()函数来实现。这个函数的作用是在一个字符串中查找一个指定子串的首次出现位置,如果找到了就返回指向该位置的指针,否则返回NULL。
下面是一个简单的例子,假设我们要查找字符串str中是否包含子串
sub_str:
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "Fish is very smart and funny!";
char sub_str[] = "smart";
char *result;
result = strstr(str, sub_str);
if(result == NULL)
printf("'%s' not found in '%s'\n", sub_str, str);
else
printf("'%s' found in '%s' at position %ld\n",
sub_str, str, result - str);
return 0;
}
这个例子中,我们首先定义了两个字符数组str和sub_str,分别表示原始字符串和需要查找的子串。然后我们使用strstr()函数来查找子串在原始字符串中的出现位置,并将返回的指针赋值给result变量。
接着,我们使用一个简单的判断条件来确定子串是否被找到了。如果strstr()函数返回的指针是NULL,表示在原始字符串中没有找到子串,那么就打印一条提示信息’smart’ not found in ‘Fish is very smart and funny!’。否则,我们可以利用指针的差值来计算子串在原始字符串中的位置,并打印一条提示信息’smart’ found in ‘Fish is very smart and funny!’ at position 12。
在使用strstr()函数进行字符串查找时,需要注意一些参数的使用。这个函数的参数与大多数字符串函数一样,都是字符串类型的指针。第一个参数是需要查找的字符串,第二个参数是需要查找的子串。如果函数执行成功,返回子串在原始字符串中的首次出现位置的指针;如果失败,返回NULL。具体使用方法可以参考上面的代码示例。
还有,需要注意的是strstr()函数是区分大小写的,因此如果原始字符串中包含的子串与需要查找的子串大小写不一致,那么查找操作将是不成功的。如果需要忽略大小写来进行字符串查找操作,可以使用strcasestr()函数。
此外,如果需要查找指定字符串在一个大字符串中的所有出现位置,可以借助循环和指针的操作来实现。具体做法是,使用循环不断地在大字符串中查找子串,每找到一次,就记录一下该子串在原始字符串中的位置,并将指针移动到该子串的后面,继续查找直到结束。
下面是相应的代码示例:
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "Fish is very smart and funny, Fish can swim really fast!";
char sub_str[] = "Fish";
char *result = str;
int count = 0;
while((result = strstr(result, sub_str)) != NULL)
{
printf("'%s' found at position %ld\n",
sub_str, result - str);
count ;
result ;
}
if(count == 0)
printf("'%s' not found in '%s'\n", sub_str, str);
else
printf("Found %d occurences of '%s' in '%s'\n",
count, sub_str, str);
return 0;
}
这个例子中,我们在一个大字符串str中查找子串sub_str,然后将每次查找到的位置记录下来。具体做法是,使用strstr()函数不断查找子串的出现位置,并使用指针移动到该子串的下一个位置,继续查找直到结束。在每一次查找到子串的位置后,我们打印一条提示信息,并将查找次数加1。
最后,我们根据查找到的次数判断查找操作是否成功。如果查找次数为0,表示在原始字符串中没有找到任何一个子串,那么就打印一条提示信息’Fish’ not found in ‘Fish is very smart and funny, Fish can swim really fast!’;否则,我们打印一条信息Found 2 occurences of ‘Fish’ in ‘Fish is very smart and funny, Fish can swim really fast!’,表示在原始字符串中找到了2个子串。
好了,希望这些补充和实例可以帮助你更好地理解C语言中的字符串查找操作。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgggggh
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13