这可能是一些基本的问题来分割字符串,但我真的不能找到一个答案:我需要拆分有两个数字的字符串,为两个字符串C.Ç - 如何通过一个子
实施例:
1-> 2到1和2
我使用的strtok,但它需要一个系列字符的分裂,则不能指定的序列是除数。
我不能使用ANSI C以外的任何东西。
任何帮助将不胜感激!
如何将此标记为完全相同?它甚至不接近...
这可能是一些基本的问题来分割字符串,但我真的不能找到一个答案:我需要拆分有两个数字的字符串,为两个字符串C.Ç - 如何通过一个子
实施例:
1-> 2到1和2
我使用的strtok,但它需要一个系列字符的分裂,则不能指定的序列是除数。
我不能使用ANSI C以外的任何东西。
任何帮助将不胜感激!
如何将此标记为完全相同?它甚至不接近...
使用'sscanf()'。不要问别人为你做它,因为它太容易了,如果你给了几分钟去了解它,特别是它的格式说明串nuances.Here是这就够了一个链接:
http://www.cplusplus.com/reference/cstdio/sscanf/
提示:sscanf (source_string,"%d->%d",&num1,&num2);
好这里的东西让你开始:
const char *FindSubString(const char *sub, const char *src)
{
// Loop through the source string
while(*src++)
{
// Only check for matching character in beginning of sub sequence
if(*src == *sub)
{
return src;
}
}
}
这只是找到一个指向子sequenc第一个匹配的字符e和源字符串。我相信你可以在内部循环中找到一些东西来检查sub
字符串是否与src
字符串中的接下来的几个字符匹配。
这是一个蛮力方法。只适合于快速修复。
#include <stdlib.h>
#include <ctype.h>
void extract_2_numbers (char *str, int *a, int *b) {
*a = atoi (str);
while (isdigit(*str)) str++;
while (!isdigit(*str)) str++;
*b = atoi (str);
}
int main() {
int x, y;
char *string = "12--->24";
extract_2_numbers (string, &x, &y);
printf ("%d\t%d\n", x, y);
return 0;
}
打印此输出:
12 24
看到http://stackoverflow.com/questions/2523467/how-to-split-a-string-to-2-strings-in-c – ericosg 2013-04-22 05:05:44
@Lautaro嘿,如果我听起来很粗鲁,不要介意。我是以自己过去的经历作为新手说的。如果你仔细阅读了某些内容,那么你会惊讶你会做出多少微妙的发现。似乎对我们所有人都很有吸引力,但如果我们努力一点,它总是会付出长期的代价。 – 2013-04-22 05:10:52
@ericosg该链接不相关,因为'strtok'只处理单个字符的分隔符,这就是链接中显示的全部内容。它可以用'strstr'完成。 – 2013-04-22 05:28:16