你好我试图从一个更大的字符串中提取一个小字符串,基本上我给了一个带分隔符的字符串,我需要重新排列它.所以我要说"@the President#"@显示我必须开始的地方,#是子串的结尾.我正在使用strchr获取指向@符号的指针,我知道我需要搜索直到找到#符号.虽然从x到y函数没有,但我不确定如何从char指针到符号#.
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++;
}
Run Code Online (Sandbox Code Playgroud)
使用这样的东西:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
经过测试的代码:
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);
}
}
Run Code Online (Sandbox Code Playgroud)