【发布时间】:2016-05-30 22:54:18
【问题描述】:
所以,我有一个问题。我试图只获取此示例给出的字符串内部:
用户输入:insert("someWord")
我想首先确保用户正确拼写了 insert(",然后我想复制包含在 "" 中的字符串。截至目前,我有一个带有参数的函数,它是完整的用户输入,并且在里面功能,我有以下:
method header(char *string){
char insert[]="insert(";
if((strncmp(string,insert,6)==0)
{
//the first part was right up to the "
//how do I now get the string contained between " "?
}
else
{ //invalid input
}
}
我什至不是 100% 肯定 strncmp 方法正确比较了两个字符串的前 6 个字母。
【问题讨论】:
-
“我什至不是 100% 肯定 strncmp 方法正确比较了两个字符串的前 6 个字母。”为什么不?测试您的代码或阅读strcmp man page 不会为您提供这些信息吗?至于提取子字符串,只需浏览standard string functions 的其余部分,看看哪些可以帮助您。例如,您可以使用
strtok和"作为分隔符或使用strchr来查找内部字符串的开始和结束位置。 -
另外,
"insert("是 7 个字符而不是 6 个字符。最好使用strlen(insert)而不是硬编码的数字。它也不包括(之后的"字符,您似乎也想匹配。