标签: strstr

PHP:从字符串中提取名称

我有一条看起来像这样的路径:

/home/duke/aa/servers/**servername**/var/...morefiles...

使用php,我想从路径中提取"servername"

不幸的是我不是那么精通php,但我想出了一些使用strstr()但我只使用PHP版本5.2的地方,其中一个参数函数需要5.3

什么可能会返回"servername"的代码?

php string strstr

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

使用valgrind在strstr()中读取大小1无效

我正在用valgrind检查一些代码,我得到了这个错误:

==7001== Invalid read of size 1
==7001==    at 0x402E21B: strstr (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==7001==    by 0x8049742: replace_in_file (functions.c:191)
==7001==    by 0x8049C55: parse_dir (functions.c:295)
==7001==    by 0x8049059: main (main.c:214)
==7001==  Address 0x42018c3 is 0 bytes after a block of size 3 alloc'd
==7001==    at 0x402B018: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==7001==    by 0x80496EC: replace_in_file (functions.c:183)
==7001==    by 0x8049C55: parse_dir (functions.c:295)
==7001==    by 0x8049059: main (main.c:214)
Run Code Online (Sandbox Code Playgroud)

代码段如下所示:

long int replace_in_file(char **sets, FILE *file, char *path, const char *mode){
    long int n = 0, size …
Run Code Online (Sandbox Code Playgroud)

c valgrind strstr

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

错误:“strstr”未在此范围内声明

我正在树莓派上编写一个具有共享内存的应用程序。我在我自己编写的共享内存库中使用函数 strstr() 。当我在 OS X 上使用 clang++ 编译库时,没有出现错误。如果我在树莓派上编译它,我会收到错误:\'strstr\' 未在此范围内声明。

\n\n

我尝试更新我的树莓派,但没有成功,你能给我任何提示或解决方案吗?

\n\n

标题-Datei

\n\n
#ifndef SHAREDMEMORY_H\n#define SHAREDMEMORY_H\n\n#include <string>\n#include <cstdlib>\n#include <stdio.h>\n#include <sys/types.h>\n#include <sys/stat.h>\n#include <unistd.h>\n#include <fcntl.h>\n#include <sys/mman.h>\n#include <iostream>\n\n#define MAX_SERVICES 99\n\n/**\n * Datei mit der Datenbank.\n */\n#define FILEPATH "database.dat"\n/**\n * Anzahl der Zeichen in der\n * Datenbank.\n */\n#define CHARACTERS 2500\n/**\n * Gr\xc3\xb6\xc3\x9fe der Datenbank.\n */\n#define FILESIZE (CHARACTERS*sizeof(char))\n\nclass SharedMemory {\npublic:\n    /**\n     * Constructor \n     */\n    SharedMemory();\n    /**\n     * Desctructor\n     */\n    ~SharedMemory();\n    /**\n     * Method to open file\n     * @param string: Path to file, has …
Run Code Online (Sandbox Code Playgroud)

c++ strstr raspberry-pi2

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

strstr的微妙之处?

我有一个二进制数据文件,其中包含各种字符串.我正在尝试编写一个C代码来查找文件中第一次出现用户指定的字符串.(我知道这可以用bash完成,但出于其他原因我需要一个C代码.)现在的代码是:

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

#define CHUNK_SIZE 512

int main(int argc, char **argv) {
    char *fname = argv[1];
    char *tag = argv[2];
    FILE *infile;
    char *chunk;
    char *taglcn = NULL;
    long lcn_in_file = 0;
    int back_step;
    fpos_t pos;

    // allocate chunk
    chunk = (char*)malloc((CHUNK_SIZE + 1) * sizeof(char));

    // find back_step
    back_step = strlen(tag) - 1;

    // open file
    infile = fopen(fname, "r");

    // loop
    while (taglcn == NULL) { 
        // read chunk
        memset(chunk, 0, (CHUNK_SIZE + 1) * sizeof(char)); …
Run Code Online (Sandbox Code Playgroud)

c string strstr

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

在c中匹配一个确切的单词

我可以使用strstr函数来匹配确切的单词吗?例如,假设我有单词hello和输入字符串line:

如果

char* line = "hellodarkness my old friend";
Run Code Online (Sandbox Code Playgroud)

我用

result = strstr(line, "hello");
Run Code Online (Sandbox Code Playgroud)

result将匹配(不是NULL),但我想只匹配确切的单词"hello"(以便"hellodarkness"不匹配),结果将为NULL.是否可以使用strstr或者我必须fscan逐字逐句扫描并检查匹配?

c strstr

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

为什么strstr() - char指针=数字?

我有这个程序:

#include <iostream>
#include <conio.h>
#include <string.h>

using namespace std;

int main()
{
  char char1[30] = "ExtraCharacter", char2[30] = "Character", *p;

  p = strstr(char1, char2);
  cout << "p: " << p << endl;
  cout << "char1: " << char1 << endl;
  cout << "(p-char1): " << (p-char1) << endl;

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到:

p: Character
char1: ExtraCharacter
(p-char1): 5
Run Code Online (Sandbox Code Playgroud)

正如所料.

但这不是问题,我不确定为什么"Character" - "ExtraCharacter"是整数(5)?也许不是整数,而是数字/数字.实际上我不明白为什么存储"Character" p,而不是内存地址.

如果我从书中理解得很好,strstr()返回一个内存地址,它不应该更像是一个奇怪的值,比如十六进制(0x0045fe00)或类似的东西吗?我的意思是,它cout << p不是cout << *p显示该内存地址的实际值. …

c++ pointers strstr

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

重新创建 strstr() 函数

您好,我正在尝试创建自己的strstr()函数,但我无法弄清楚为什么它会返回分段错误。我正在尝试在另一个字符串中搜索一个字符串,然后返回指向第一个“相同”字母的指针。任何帮助,将不胜感激。这是我的代码:

char* ms_search(char *Str1,char* Str2){
    char* p = NULL;
    int i,k=0,j = 0;
    for(i = 0;i < ms_length(Str1); i++){
        if(Str1[i] == Str2[k]){
            if(k == 0){
                p = &Str1[i];
                j= i;
            }
            if(k == ms_length(Str2)){
                break;
            }
            k++;
        }
        else{
            if(Str1[i] == Str2[0]){
                p = &Str1[i];
                k=1;
                j= i;
            }   
            else{
                j=0;
                k = 0;
                p = NULL;
            }
        }
    }
    if(p != NULL){
        Str1[ms_length(Str2)+1] = '\0';
    }
    return &Str1[j];
} 
int main(){
    int i;
    char* p2;
    char* p="lolaaa"; …
Run Code Online (Sandbox Code Playgroud)

c pointers strstr

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

strstr()函数重叠字符串搜索

我正在尝试使用strstr函数计算字符串'TT'出现在DNA序列ATGCTAGTATTTGGATAGATAGATAGATAGATAGATAGATAAAAAAATTTTTTTT中的次数,而不计算任何'T'两次.它应该出现5个'TT'实例,但我的功能是给我9,如果你重叠'TT',你会得到的.我该如何解决这个问题,以便只计算'TT'的每个实例并且不计算两次T?这是我的计划:

/***************************************************************************************/
#include <iostream>    
#include <cstring>      
#include <iomanip>

using namespace std;

    //FUNCTION PROTOTYPES
     int overlap(char *ptr1, char *ptr2);

int main()
{

    //Declare and initialize objects
   int count(0); // For DNA sequence

        //DNA SEQUENCE
    char DNA_sequence[] = "ATGCTAGTATTTGGATAGATAGATAGATAGATAGATAGATAAAAAAATTTTTTTT";
    char thymine_group[] = "TT";
    char *ptr1(DNA_sequence), *ptr2(thymine_group);

//Send QUOTE to function
count = overlap(ptr1, ptr2);

   //Print number of occurences.
    cout << "'TT' appears in DNA sequence " << count << " times" << endl;
    return 0;
}

//FUNCTION 1 USING CHAR ARRAYS AND …
Run Code Online (Sandbox Code Playgroud)

c++ string overlap strstr

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

如何取出线中的针

如何删除字符串中的“-” ?

$text  = 'lorem ipsum - dolor sit amet!';
$lorem = strstr($text, '-');

echo $lorem;
Run Code Online (Sandbox Code Playgroud)

返回:

- 多洛坐阿梅特!

我需要这个:

多洛坐阿梅特!

php string strstr

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

strstr函数不返回NULL

我是新来的,这是我的第一个问题.

我已经搜索过这个问题了,但是找不到这类问题.所以这就是它.

我正在使用2d字符数组为名称数据库编写基于菜单的程序.下面是我的主要功能.

int main(void)
{
    char name[MAX][25] = { 0 };
    char choice;

    while (1) {
        printf("******************menu****************\n");
        printf("i: input\n");
        printf("p: print\n");
        printf("f: find\n");
        printf("d: delete\n");
        printf("s: sort\n");
        printf("e: edit\n");
        printf("q: quit\n");
        printf("**************************************\n\n");
        printf("Enter your choice: ");
        scanf(" %c", &choice);
        getchar();

        switch (choice) {
            case 'i':
                input(name);
                break;
            case 'p':
                print(name);
                break;
            case 'f':
                find(name);
                break;
            case 'q':
                return 0;
            default:
                printf("Invalid choice\n");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

输入和打印功能正常,但我在查找功能方面有问题.这里是.

void find(char (*p)[25])
{
    int i;
    char str[25];

    if (count == 0) { …
Run Code Online (Sandbox Code Playgroud)

c string ubuntu strstr

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

标签 统计

strstr ×10

c ×5

string ×5

c++ ×3

php ×2

pointers ×2

overlap ×1

raspberry-pi2 ×1

ubuntu ×1

valgrind ×1