Welche cstring Funktion



  • Hallo

    Ich möchte mit dem header string.h folgendes realisieren und bin nicht ganz sicher, welche Funktion ich daraus verwenden muss um das zu machen.

    Ich habe ein array in dem ein langer String ist und ich will darin nach einem Schlüsselbegriff suchen und darauf folgend eine bestimmte Anzahl von Zeichen kopieren, um diese in eine Datei zu schreiben.

    Welche Funktion realisiert dies?

    Danke
    Grüße



  • strstr dann strncpy oder memcpy



  • Es lohnt sich nicht, einen substring zu kopieren, nur um ihn in eine Datei zu schreiben. Stattdessen kannst du auch einfach direkt den String schreiben.



  • Marthog schrieb:

    Es lohnt sich nicht, einen substring zu kopieren, nur um ihn in eine Datei zu schreiben. Stattdessen kannst du auch einfach direkt den String schreiben.

    Hi

    Wie meinst du das?


  • Mod

    Herbststurm schrieb:

    Wie meinst du das?

    Wieso nicht direkt die gewünschten Zeichen in die Datei schreiben? Der Umweg ist unnötig. Es gibt mehr Schreibfunktionen als fputs() und printf("%s") .



  • #include <stdio.h>
    #include <string.h>
    
    int main(void)
    {	
    	char array[]="ich habe einen langen!";
    	char* schluesselbegriff = "habe";
    	char* p;
    
    	p = strstr(array, schluesselbegriff);
    	if (p != NULL)
    	{
    		FILE* fp = fopen("ausgabe.txt", "w");
    		int bestimmte_anzahl=1000;
    		int i=0;
    		while(*p&&i<1000)
    		{
    			fputc(*p, fp);
    			i++, p++;
    		}
    		fclose(fp);
    	}
    	return 0;
    }
    

    es fehlen noch sicherheitsabfragen aber prizip sollte klar sein.
    mfg



  • Hab ich gar nicht dran gedacht. Probier das mal 😉

    #include <stdlib.h>
    #include <stdio.h>
    int main(void)
    {
    	char *a = "Hallo";
    	printf("%.*s\n", 2, a);
    }
    


  • char* schluesselbegriff = "habe";
    
    char *a = "Hallo";
    

    Jedes Mal, wenn ein Stringliteral einem char* zugewiesen wird, tötet Algorithmos, Gott der Programmierung, ein niedliches Kätzchen auf unnötig grausame Weise.

    char const *mit_qualifier = "bitte";
    

    ...dann kann man auch nicht mehr versehentlich versuchen, in Konstanten rumzuschreiben.



  • Sehr gut ... ich hasse Katzen.


Anmelden zum Antworten