标签: strstr

c中的数组迭代strstr

我想知道在下面的迭代中是否可以安全地找到数组中第一次出现的str,或者是否有更好的方法.谢谢

#include <stdio.h> 
#include <string.h>

const char * list[] = {"One","Two","Three","Four","Five"};

char *c(char * str) {
    int i;
    for (i = 0; i < 5; i++) {
        if (strstr(str, list[i]) != NULL) return list[i];
    }
    return "Not Found";
}
int main() {
    char str[] = "This is a simple string of hshhs wo a char";

    printf("%s", c(str));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c arrays iteration strstr

1
推荐指数
1
解决办法
1821
查看次数

PHP - strstr函数问题

大家好日子.我正在使用zend + smarty,但我不认为该框架与该问题有任何关系.我有以下场景:

     A script that gets a string from a specified site using an api. The string is retrieved corectly so I'll just assign a string to a variable:

     $string = 'String retrieved from api.';
     $string = strstr($string, "<?xml", false);

     libxml_use_internal_errors(true);
     $xml = simplexml_load_string($body);
Run Code Online (Sandbox Code Playgroud)

听起来不错,看起来不错.现在问题.

当我在我们的本地测试机器上使用它时,它就像一个梦想.没问题.另一方面,在生产机器上我得到了这个:

警告:第720行/home/prj/include/DatabaseObject/Ctrl.php中的strstr()参数计数错误(这是strstr行).

我在两台机器上的strstr之前检查了字符串,它们是相同的.同样在strstr行之后的第二个服务器上,字符串变为空(在另一个服务器上,它被正确转换).

我真的不明白......代码是一样的.字符串是相同的.对我来说有点奇怪.

php zend-framework strstr

1
推荐指数
1
解决办法
667
查看次数

如何计算字符串中字符串的外观?

我必须在一个更大的字符串中计算特定C字符串的外观.我正在使用strstr()函数来计算并使用char指针前进通过大C字符串.问题在于它似乎数量太少,比如文本的减少增加到快速,跳过大块的字符.我使用一个类型为int的变量,称为'x',从左到右'减少'文本,但我不知道分配新值的问题是什么.

int x=0;
while((p=strstr(text+x,triG))!=NULL)
{
    v[i]++;
    x+=x+3+(p-(text+x));
}
Run Code Online (Sandbox Code Playgroud)

text是char*类型,动态地分配.triG的类型为char [4],p的类型为char*.

c string pointers strstr

1
推荐指数
1
解决办法
245
查看次数

为什么strpos在这个例子中失败了

我想清理url地址,但首先我要检查字符串中是否应该替换.我想使用strpos,因为它更快,但它无法检测到字符串.

$txt = 'http://www.youtube.com/watch?v=aWFmXFFjJfw';

if(strpos($txt, 'http://www.')){
echo 'true strpos'; // not shows
}

if(strstr($txt, 'http://www.')){
echo 'true strstr'; // show
}
Run Code Online (Sandbox Code Playgroud)

$match = strpos($txt, 'http://www.');
var_dump($match); // int(0);
Run Code Online (Sandbox Code Playgroud)

php strstr strpos

1
推荐指数
1
解决办法
703
查看次数

如何在C中两个字符串之间查找文本

我需要提取c中2个字符串模式之间的文本。

例:

aaaaaa<BBBB>TEXT TO EXTRACT</BBBB>aaaaaaaaa

PATTERN1=<BBBB>
PATTERN2=</BBBB>
Run Code Online (Sandbox Code Playgroud)

谢谢。

c string ansi char strstr

1
推荐指数
2
解决办法
8037
查看次数

使用C中的strstr搜索主字符串中的多个字符串

目前,strstr函数返回找到的字符串的起始位置; 但我想搜索多个字符串,它应该返回找到的字符串的位置,否则返回NULL.任何人都可以帮助我如何做到这一点?

c search strstr

0
推荐指数
1
解决办法
2808
查看次数

PHP/Regex:从字符串中提取字符串

我刚开始使用PHP,希望有人可以帮助我.

我试图myRegion从另一个字符串(" mainString")中提取一个字符串(" "),其中我的字符串始终以" myCountry:" 开头,;如果主字符串在myCountry之后包含更多国家,则以分号()结尾,如果主字符串不包含任何内容之后不再包含更多国家/地区.

显示主字符串的不同选项的示例:

  • myCountry:region1,region2
  • myCountry:region1,region2,region3 ; otherCountry:region1
  • otherCountry:region1; myCountry:region1 ; otherCountry:region1,region2

我想要提取的内容始终是粗体部分.

我在考虑类似下面的内容,但这看起来还不对:

$myRegions = strstr($mainString, $myCountry);                   
$myRegions = str_replace($myCountry . ": ", "", $myRegions);
$myRegions = substr($myRegions, 0, strpos($myRegions, ";"));
Run Code Online (Sandbox Code Playgroud)

迈克,非常感谢您提供任何帮助.

php regex substr strstr str-replace

0
推荐指数
2
解决办法
7643
查看次数

c4133警告c代码

我有一个问题,警告c4133,它说问题是从char*到int*的无法使用的类型,我尝试施放指针((char*)x)但没有运气,也许有人知道什么是问题/

这是我的程序,功能中的问题.

void replaceSubstring(char *str, char *substr)//function that gets string and substring and      make the substring in string big letters
{
    int i;
    int  *x;

    x = (strstr(str, substr));//The problem line 
    while (strstr(str,substr) != NULL)
    {
        for (i=0;i<strlen(substr);i++)
        {
            *x = *x - 32;
            x++;//move to the next char
        }
        x = (strstr(str, substr));  //first apear of substr int str
    }
 }
Run Code Online (Sandbox Code Playgroud)

c string pointers strstr

0
推荐指数
1
解决办法
153
查看次数

我可以在C中搜索字符串中的字符(X或Y)吗?

我正在尝试在字符串中搜索字符以找到它在字符串中的位置,但是,该字符可以是三个中的一个.

我试图达到相当于这个:

char *foo = strstr(string, x);
Run Code Online (Sandbox Code Playgroud)

其中x可以是"i","j"或"k".

最好的解决方法是什么?

c search strstr

0
推荐指数
1
解决办法
80
查看次数

查找数字5出现在0 - 4322之间的次数

这段代码似乎对我不起作用.它输出的数字17显然是错误的.如果遇到5,15,25,50等数字,计数器应该会上升.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

int main(void) {
    int i;
    int counter; 
    char num[4322];

    for (i = 1; i < sizeof(num); i++){
        num[i] = i;
        if ( strstr(&num[i], "5")){
            counter = counter + 1;
        }
    } 

    printf("%d", counter);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c arrays string pointers strstr

0
推荐指数
1
解决办法
50
查看次数

标签 统计

strstr ×10

c ×7

string ×4

php ×3

pointers ×3

arrays ×2

search ×2

ansi ×1

char ×1

iteration ×1

regex ×1

str-replace ×1

strpos ×1

substr ×1

zend-framework ×1