這可能是一些基本的問題來分割字符串,但我真的不能找到一個答案:我需要拆分有兩個數字的字符串,爲兩個字符串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