C strcat - Warnung: Die Übergabe von arg 2 von "strcat" erzeugt einen Zeiger von einer Ganzzahl ohne Umwandlung

Ich habe ein Problem mit dem unten stehenden Programm. Ich versuche, einen vom Benutzer eingegebenen Zeichenfolgenbefehl nach bestimmten Wörtern abzusuchen. Mein aktuelles Hauptproblem ist, dass ich beim Ausführen des folgenden Befehls eine Warnung erhalte, die besagt, dass die Übergabe von arg 2 von "strcat" einen Zeiger von einer Ganzzahl ohne Umwandlung erzeugt. Meine Absicht ist es, die ersten drei Zeichen der Zeichenkette "s" durchzugehen, sie zu einer Zeichenkette "firstthree" zu verketten und später den Wert der Zeichenkette "firstthree" zu überprüfen. Jede Hilfe wird geschätzt.

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <readline/readline.h>
#include <readline/history.h>

/* Simple example of using gnu readline to get lines of input from a user.
Needs to be linked with -lreadline -lcurses
add_history tells the readline library to add the line to it's
internal histiry, so that using up-arrow (or ^p) will allows the user
to see/edit previous lines.
*/

int main(int argc, char **argv) {
    char *s;
    while (s=readline("Enter Name: ")) {
            add_history(s); /* adds the line to the readline history buffer */
            printf("Hello %s\n",s);/*output message to the user*/
            char *firstthree;
            int i;
            for(i = 0; i < 3; i++){
                    strcat(firstthree, s[i]);
                    printf("Hello %s\n",firstthree);//checking to see the character added to the end of the string
            }
            printf("Hey %s\n",firstthree);/*prints out the first three characters*/
            free(s); /* clean up! */
            free(firstthree);
    }
    return(0);

}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage