【发布时间】:2012-03-16 12:23:51
【问题描述】:
我想知道是否有一种方法可以在我点击字符串中的某个单词之前提取所有内容。我创建的字符串已被分配然后填充。我想在某个子字符串之前创建一个包含所有内容的新字符串,所以
String1 = "我需要咖啡"
我怎样才能在咖啡之前提取所有东西?
有什么想法吗?
谢谢
【问题讨论】:
-
试试strstr。
标签: c string pointers char substring
我想知道是否有一种方法可以在我点击字符串中的某个单词之前提取所有内容。我创建的字符串已被分配然后填充。我想在某个子字符串之前创建一个包含所有内容的新字符串,所以
String1 = "我需要咖啡"
我怎样才能在咖啡之前提取所有东西?
有什么想法吗?
谢谢
【问题讨论】:
标签: c string pointers char substring
您可以使用KMP 查找字符串的出现位置,然后提取该索引之前的所有内容。
【讨论】:
当然,您可以为此使用strstr():
const char *substring = strstr(string1, "coffee");
if (substring) {
size_t len = substring - string1;
char *string2 = malloc(len + 1);
if (string2) {
memcpy(string2, string1, len);
string2[len] = 0;
/* Do something with string2 */
}
}
【讨论】: