2017-02-09 1 views
0

Wie man ein Wort in einer Textzeile in der Zeichenkette in der C Sprache auswählt?Wie man ein Wort in einer Textzeile in C annimmt

Beispiel Zeichenfolge "Meine Mutter kocht gut ...." Wie kann ich nur "Köche" in dieser Zeichenfolge bearbeiten? Die Frage ist für eine Prüfung. Wie kann ich eine Länge finden und wie kann ich zB ein zweites Wort im Text bearbeiten?

#include <stdio.h> 

int length(char* s) // Lenght 
{ 
    int d = -1; 
    while (s[++d]); 
    return d; 
} 

int main() //main function 
{ 
    char str[101], c; 
    int i = 0; 

    printf("Entry text:\n"); 
    scanf("%s", str); //Input text line 
    printf("First word lenght('%s') je %d.\n", str, lenght(str)); 

    do 
    { 
     scanf("%c", &c); 
     str[i++] = c; 
    } while (c != '\n'); 

    str[i - 1] = 0; 
    printf("The rest: '%s'\n", str); //Rest lenght 
    printf("The rest lenght: %d.", lenght(str)); 
    return 0; 
} 
+1

Nur ein * FYI *: um Pufferüberlauf mit dem 'canf' Aufruf zu verhindern, begrenzen Sie die Anzahl der Zeichen, die es lesen kann:' scanf ("% 100s", str); ' – pmg

Antwort

1

können Sie verwenden strtok()

int i = 0; 
char delim[2] = " "; 
char *c = strtok(str, delim); //space is the delimiter. 
// c points to the first word 
while(c != NULL) 
{ 
    printf(" %s\n",c); 
    c = strtok(str, NULL) //notice this NULL 
    i++; 
    if(i == 2) 
    { 
     //edit your 2nd word 
     //break if you want after this or carry on 
    } 
} 
0

Siehe strstr (3). Ich denke, das ist alles was du brauchst.

Verwandte Themen