2010-12-01 58 views
0

我要創建C編程的功能,這將考驗在C.測試嵌入式空間

嵌入的空間,如果它發現嵌入的空格的字符串它將返回1,否則0

例子:

'sjdfnsdj' >>>>> return 0 
'sdsd sdsdf' >>>>> return 1 
' ssadsa' >>> return 0 
'dfjksdnf sdfsdfdf' >>>> return 1 
' sadf asdad' >>>> return 1 

嵌入式空間是指兩個字符串之間或字符串後,但不是一個字符串

+6

那麼,你現在的功能代碼是什麼樣的? – jball 2010-12-01 17:53:27

+0

@ruslik,`作業`retag的基礎是什麼? – jball 2010-12-01 18:07:10

回答

2

你可以使用strchr到其中的掃描前位在跳過前導空格後,用空格字符表示字符串。

假設焦炭的buf []包含字符串來測試

int i=0; 
while (buf[i] == ' ' && buf[i] != '\0') 
    i++; 

return strchr(&buf[i], ' ') != NULL; 

編輯:訊息已重新標記家庭作業。

除了使用strchr之外,您還可以執行另一個循環來跳過前導空格。查找第一個非空格字符後是否還有空格。

1

這可能有幫助,基本上你需要一個簡單的狀態機。

int CheckEmbeddedStr(char *str) 
{ 
    //0 - No Start str 
    //1 - Start str seen 
    //2 - embedded space seen 
    //3 - trailing str seen 
    int state=0; 
    int count=0; 
    while(str && str[count]) 
    { 
     if(state == 0 && isalpha(str[count])) 
      state++; 
     if(state == 1 && str[count] = ' ') 
      state++; 
     if(state == 2 && isalpha(str[count])) 
     { 
      state++; 
      break; 
     } 
    } 
    if(state==3) 
     return 1; 
    else 
     return 0; 
}