2013-04-22 66 views
0

這可能是一些基本的問題來分割字符串,但我真的不能找到一個答案:我需要拆分有兩個數字的字符串,爲兩個字符串C.Ç - 如何通過一個子

實施例:

1-> 2到1和2

我使用的strtok,但它需要一個系列字符的分裂,則不能指定的序列是除數。

我不能使用ANSI C以外的任何東西。

任何幫助將不勝感激!

如何將此標記爲完全相同?它甚至不接近...

+0

看到http://stackoverflow.com/questions/2523467/how-to-split-a-string-to-2-strings-in-c – ericosg 2013-04-22 05:05:44

+0

@Lautaro嘿,如果我聽起來很粗魯,不要介意。我是以自己過去的經歷作爲新手說的。如果你仔細閱讀了某些內容,那麼你會驚訝你會做出多少微妙的發現。似乎對我們所有人都很有吸引力,但如果我們努力一點,它總是會付出長期的代價。 – 2013-04-22 05:10:52

+1

@ericosg該鏈接不相關,因爲'strtok'只處理單個字符的分隔符,這就是鏈接中顯示的全部內容。它可以用'strstr'完成。 – 2013-04-22 05:28:16

回答

4

使用'sscanf()'。不要問別人爲你做它,因爲它太容易了,如果你給了幾分鐘去了解它,特別是它的格式說明串nuances.Here是這就夠了一個鏈接:

http://www.cplusplus.com/reference/cstdio/sscanf/

提示:sscanf (source_string,"%d->%d",&num1,&num2);

+0

我不認爲這是什麼OP是在尋找因爲你的答案似乎也沒有什麼幫助。 – ericosg 2013-04-22 05:06:49

+0

@ericosg讓我們希望編輯幫助。否則我會刪除我的答案。 – 2013-04-22 05:08:04

+0

更好,-1 + 1 :) – ericosg 2013-04-22 05:09:27

1

好這裏的東西讓你開始:

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字符串中的接下來的幾個字符匹配。

0

這是一個蠻力方法。只適合於快速修復。

#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