首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C子字符串方法

C子字符串方法
EN

Stack Overflow用户
提问于 2013-07-10 01:52:10
回答 1查看 405关注 0票数 0

你好,我正在尝试从一个较大的字符串中提取一个小字符串,基本上我得到了一个带有分隔符的字符串,我需要重新排列它。所以假设我有"@the president#“@显示我必须开始的地方,#是子串的结尾。我使用strchr来获取@符号的指针,我知道我需要搜索,直到找到#符号。虽然没有从x到y的函数,但我不确定如何从字符指针a转到符号#。

代码语言:javascript
运行
复制
    char *garbage = "@the president#";
    int count = 0;
    char a = strchr(garbage, @);
    char *sentence = NULL;
    while(start at a, garbage[count] != #){
       char sentence[count] = garbage[count];
       count++;
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-10 02:01:06

使用类似如下的内容:

代码语言:javascript
运行
复制
const char* posAtSign = strchr(searchString,'@');
if (posAtSign != NULL) {
    const char* posPoundSign = strchr(posAtSign+1,'#');
    if (posPoundSign != NULL) {
        const int numChars = posPoundSign - posAtSign - 1;
        strncpy(substringBuffer,posAtSign+1,numChars);
    }
}

测试代码:

代码语言:javascript
运行
复制
char searchString[] = "@the president#";
char substringBuffer[128];

const char* posAtSign = strchr(searchString,'@');
if (posAtSign != NULL) {
    const char* posPoundSign = strchr(posAtSign+1,'#');
    if (posPoundSign != NULL) {
        const int numChars = posPoundSign - posAtSign - 1;
        strncpy(substringBuffer,posAtSign+1,numChars);
        substringBuffer[numChars] = '\0';
        printf("substring: '%s'", substringBuffer);
    }
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17554965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档