`
dewei
  • 浏览: 164429 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

C语言实现 strpos 查找字符串首次出现位置

 
阅读更多

今天又写了个函数,查找字符串首次出现位置,以此作为记录:

/* {{{ 查找字符串首次出现的位置,没有找到返回 -1,两个字符串相等返回 0
   在GCC下使用C99:
   int strpos(const char *haystack,const char *needle, _Bool ignorecase = 0)
   _Bool ignorecase =1 忽略大小写
   时间:2012-08-17 By Dewei 
*/
int strpos(const char *haystack,const char *needle, _Bool ignorecase = 0)  
{  
	register unsigned char c, needc;
	unsigned char const *from, *end;
	int len = strlen(haystack);
	int needlen = strlen(needle);
	from = (unsigned char *)haystack;
	end = (unsigned char *)haystack + len;
	const char *findreset = needle;
	for (int i = 0; from < end; ++i) {
		c = *from++;
		needc = *needle;
		if (ignorecase) {
			if (c >= 65 && c < 97)
				c += 32;
			if (needc >= 65 && needc < 97)
				needc += 32;
		}
		if(c == needc) {
			++needle;
			if(*needle == '\0') {
				if (len == needlen) 
					return 0;
				else
					return i - needlen+1;
			}
		}  
		else {  
			if(*needle == '\0' && needlen > 0)
				return i - needlen +1;
			needle = findreset;  
		}
	}  
	return  -1;  
}  
/* }}} */
分享到:
评论

相关推荐

    php通过strpos查找字符串出现位置的方法

    PHP中的strpos函数是一个用于查找字符串中子字符串首次出现位置的函数。这个函数在处理文本数据时非常有用,尤其是在需要定位字符串的具体位置以便进行进一步处理时。本文将详细介绍strpos函数的使用方法和技巧,并...

    自写PHP strpos() 函数 查找字符串在另一字符串中第一次出现的位置

    自写PHP strpos() 函数 查找字符串在另一字符串中第一次出现的位置. https://blog.csdn.net/qq_40534785/article/details/87939551

    php使用substr()和strpos()联合查找字符串中某一特定字符的方法

    当需要在字符串中查找某个特定字符或子字符串,并获取它之前的内容时,可以通过`strpos()`来确定子字符串的位置,然后使用`substr()`来截取从字符串开始到子字符串位置之前的子字符串。这种组合使用方法在某些情况下...

    php查找字符串出现次数的方法

    6. **`stripos()`**:不区分大小写的`strpos()`,查找字符串中第一次出现指定字符串的位置。例如: ```php echo stripos($str, '脚本'); // 输出:28 ``` 7. **`strrpos()`**:查找字符串中最后一次出现指定字符...

    PHP程序设计-3期(KC016) 2.8.2字符串位置习题.doc

    2. `strpos`函数查找字符串位置时不区分大小写(**错误**),`strpos`是区分大小写的。 3. `stripos`函数查找字符串在另一字符串中首次出现的位置(**正确**),并且不区分大小写。 4. `strrpos`函数如果没有找到...

    strpos() 函数判断字符串中是否包含某字符串的方法

    strpos() 函数用于在字符串中查找字符串首次出现的位置,如果找到指定的字符串,则返回其在主字符串中的第一个字符的索引位置。索引位置是从0开始计数的,这意味着字符串的第一个字符位置为0。如果没有找到指定的...

    php实现指定字符串中查找子字符串的方法

    `strpos()`函数是PHP内置的字符串函数之一,它的主要作用是在一个字符串(称为“主字符串”或“haystack”)中查找另一个字符串(称为“子字符串”或“needle”)的首次出现位置。函数的语法如下: ```php strpos...

    php使用strpos判断字符串中数字类型子字符串出错的解决方法 原创

    在PHP开发中,strpos是一个常用的函数,用于查找字符串在另一个字符串中首次出现的位置。然而在使用strpos函数时,可能会遇到一些隐晦的问题,尤其是在处理数字和字符串之间的转换时。本文将详细解释strpos函数在...

    PHP 查找字符串常用函数介绍

    接下来是strpos函数,它用于查找字符串首次出现的位置。函数定义为strpos($haystack, $needle, $offset=0)。$offset参数可以指定从哪个位置开始搜索,默认为0,从头开始查找。strpos返回的位置是相对于$haystack的...

    PHP字符串处理讲述了很多关于字符串的常用用法

    `strpos()`函数用于查找一个字符串在另一个字符串中的首次出现位置。如果找到了匹配的字符串,则返回其索引位置;如果没有找到,则返回`FALSE`。索引位置从0开始计数。例如: ```php $haystack = "Hello World!"; $...

    php判断字符串在另一个字符串位置的方法

    除了`strstr()`,PHP还提供了其他字符串处理函数,如`strpos()`,用于查找字符串首次出现的位置(返回的是索引,而不是子字符串),`str_replace()`用于替换字符串中的特定部分,以及`strlen()`用于获取字符串的长度...

    PHP 获取字符串中的字符

    这两个函数用于查找字符串中的子字符串位置。`strpos()`从开始查找,`strrpos()`从后向前查找。返回的是子字符串的第一个字符相对于字符串开始的位置,如果未找到则返回`false`。 ```php $str = "查找字符串中的...

    php字符串函数分类

    **功能描述:** 不区分大小写地查找字符串首次出现的位置。 **示例代码:** ```php $haystack = "Hello World, hello again"; $needle = "hello"; echo stristr($haystack, $needle); // 输出 "hello again" ``` #...

Global site tag (gtag.js) - Google Analytics