2016-10-20 2 views
-2

Ich bin neu in C habe ich einen Code wie dieseUm nur das erste Vorkommen eines Teil in c drucken

#include <stdio.h> 
#include <string.h> 

int i = 0; 
int main() 
{ 
    char text[] = "..... $it is beautiful : $yes you are correct...."; 
    char * sub = "$"; 
    char * ret = strstr(text, sub); 

    if (ret != NULL) 
    { 
     printf("the statement is : %s", ret); 
    } 
} 

ich nur diesen Teil des Codes drucken mag: $it is beautiful. Gibt es eine Möglichkeit, nur diese Aussage zu drucken? Nehmen wir an, dass dies ein Teil eines vollständigen Textkörpers ist, also keine andere Idee als die strlen? Der Druck sollte nicht auftreten, wenn die zweite $ appears.This die Grundvoraussetzung für mich ist

+0

Welchen Druck bekommen Sie jetzt? – MayurK

+0

$ es ist schön: $ ja du bist richtig .... das ist die Druckausgabe – kaya

Antwort

0

Dies sollte funktionieren.

#include <stdio.h> 
#include <string.h> 

int i=0; 
int main() 
{ 
    char text[] = "..... $it is beautiful : $yes you are correct...."; 
    char* sub = "$"; 
    char* ret = strstr(text,sub); 
    char *out = malloc(strlen(text)+1); //To make the solution generic 

    if (ret!=NULL) 
    { 
     sscanf(ret, "$%[^$^:]", out); 
     printf("the statement is : [%s] \n",out); 
    } 

    free(out); 
} 
+0

Das funktioniert auch perfekt, vielen Dank !! – kaya

0

Verwenden strchr mit : oder $ nach Ihren Leistungsbedarf

#include <stdio.h> 
#include <string.h> 

int main() { 
    char text[] = "..... $it is beautiful : $yes you are correct...."; 
    char * ret = strstr(text, "$"); 
    if (ret != NULL) { 
     char *colon; 
     if (colon = strrchr(ret, ':')) 
      *colon = '\0'; 
     printf("The statement is: %s", ret); 
    } 
    return 0; 
} 

Ausgabe

Die Aussage lautet: $ es ist schön

+0

Es funktioniert, vielen Dank! – kaya

+0

@kaya Froh, dass es geholfen hat. – Shreevardhan

Verwandte Themen