2014-04-30 3 views
-4

영문자와 숫자의 조합으로 된 문자열 Ex : ab1c23de5가 주어지면 동일한 문자열 Ex : abcde 12345에서 숫자와 문자를 서로 분리해야합니다. C에서 어떻게 할 수 있습니까 ??문자열의 숫자에서 알파벳 분할하기

+0

스택 오버플로에 오신 것을 환영합니다. 불행히도 귀하의 질문은 사이트 표준에 의한 좋은 질문이 아닙니다. 좋은 질문을하는 방법을 파악하기 위해 [둘러보기] (http://stackoverflow.com/tour)를 방문하고 [도움말 센터] (http://stackoverflow.com/help)를 방문하는 데 시간을 할애 할 수 있습니까? – devnull

+0

시도한 것을 보여주십시오. –

+0

많은 프로그래밍 언어로 게시했을 때 제 솔루션을 볼 수 있습니다. –

답변

0

C#에서 Regex.Matches를 사용하여 일치하는 항목을 만들 수 있습니다. 이 방법으로 알파 문자가 list1에 추가되고 숫자 문자가 list2에 추가됩니다. 작업 패턴을 만드는 대괄호 안의 차이점에 주목하십시오.

알파벳

regex_t re; 
    char file[] = "hello777world99yew 8 I8909do23!"; 
    const char *p = file; 
    regmatch_t match; 

    if(regcomp(&re, "[a-zA-Z]+", REG_EXTENDED) != 0) exit(1); 

    while(regexec(&re, p, 1, &match, 0) == 0) 
    { 
     printf("%.*s\n", (char)(match.rm_eo - match.rm_so), &p[match.rm_so]); 
     p += match.rm_eo; 
    } 
,174,515 위해 C를 사용하여 숫자

regex_t re; 
char file[] = "hello777world99yew 8 I8909do23!"; 
const char *p = file; 
regmatch_t match; 

if(regcomp(&re, "[0-9]+", REG_EXTENDED) != 0) exit(1); 

while(regexec(&re, p, 1, &match, 0) == 0) 
{ 
    printf("%.*s\n", (int)(match.rm_eo - match.rm_so), &p[match.rm_so]); 
    p += match.rm_eo; 
} 

위해 C를 사용하여 알파벳

regex = new Regex("[a-zA-Z]"); 

if (regex.IsMatch(compare)) 
{ 
    //true 
} 

대한 C#을 사용 번호

regex = new Regex("[0-9]"); 

if (regex.IsMatch(compare)) 
{ 
    //true 
} 

대한 C#을 사용

+0

질문은 C에 관한 것이지 C#에 관한 것은 아닙니다. –

2

다음 코드는 그렇게 할 것입니다.

#include <stdio.h> 
#include <ctype.h> 

int main() 
{ 
    char arr[] = "ab1c23de5"; 
    int i; 

    for (i=0; i < strlen(arr); i++) 
    { 
     if (isdigit(arr[i])) 
     { 
      printf("Digit %d\n", arr[i] - '0'); 
     } 
     else if (isalpha(arr[i])) 
     { 
      printf("Alpha %c\n", arr[i]); 
     } 
    } 

    return 0; 
} 
+0

알파벳과 숫자를 쪼개서 똑같은 문자열에 저장하고 싶습니다 !! – user3589002

+0

분할하는 용도는 무엇입니까? – sarath

+0

@ user3589002 : cf 내 답변, 어떻게하는지 보여줍니다. 그것은 단지 하나의 가능한 솔루션을 제공하며, 가장 효과적 일을하는 방법이 아니지만 시작하기에 충분합니다. IMO –

관련 문제