i wurde gefragt, ob es eine Möglichkeit, einen Wert in eine Zeichenfolge hinzuzufügen war, nicht wie 1 + 1 = 2, aber wie 1 + 1 = 11.Verketten Strings in C
Antwort
Ich glaube, Sie brauchen String-Verkettung:
#include <stdio.h>
#include <string.h>
int main() {
char str1[50] = "Hello ";
char str2[] = "World";
strcat(str1, str2);
printf("str1: %s\n", str1);
return 0;
}
aus: http://irc.essex.ac.uk/www.iota-six.co.uk/c/g6_strcat_strncat.asp
Beachten Sie, dass strncat() (mit dem 'n') extrem schwierig zu verwenden ist - also nicht benutzen. –
Warum ist es schwieriger als die Puffer in strcat zu zählen? –
@ Jonathan: Weiß nicht über "extrem hart", aber es ist viel sicherer. –
strcat (s1, s2). Beobachten Sie Ihre Puffergrößen.
Werfen Sie einen Blick auf die strcat-API. Bei ausreichendem Pufferspeicher können Sie eine Zeichenfolge am Ende einer anderen Zeichenfolge hinzufügen.
char[50] buffer;
strcpy(buffer, "1");
printf("%s\n", buffer); // prints 1
strcat(buffer, "1");
printf("%s\n", buffer); // prints 11
Referenzseite für strcat
Um mehr als zwei Strings zu verketten, können Sie sprintf, z.
-1: Bitte verwenden Sie stattdessen snprintf – ynimous
ynimous: snprintf ist nicht überall verfügbar –
Viele Menschen können nur auf c89 verlassen. süße snprintf ist nicht für sie verfügbar :( –
'strcat' ist die Antwort, aber dachte, es sollte ein Beispiel geben, das das Puffergrößenproblem explizit berührt.
#include <string.h>
#include <stdlib.h>
/* str1 and str2 are the strings that you want to concatenate... */
/* result buffer needs to be one larger than the combined length */
/* of the two strings */
char *result = malloc((strlen(str1) + strlen(str2) + 1));
strcpy(result, str1);
strcat(result, str2);
sizeof (char) ist 1, immer. http://drj11.wordpress.com/2007/04/08/sizeofchar-is-1/ –
Dies führt zu Speicherverlust durch Überschreiben des Zeigers 'result', und benötigt mindestens eine strcpy(). Außerdem wird str1 erweitert, aber das bedeutet, dass sowohl str1 als auch str2 schreibgeschützt sein sollen. – RBerteig
malloc() kann NULL zurückgeben, was UB verursacht. – aib
- 1. Verketten von Strings und snprintf in c
- 2. Verketten von Strings in Variablennamen
- 3. verketten Strings in einer Ansicht
- 4. Verketten von Strings
- 5. Assembly verketten zwei Strings
- 6. Verketten von Strings?
- 7. verketten Strings mit Batch-Skript
- 8. Einführung C++: Verketten von Strings und Rückgabe in einer Funktion?
- 9. Strings verketten und Ausgabe formatieren
- 10. Verketten von Strings mit log4net
- 11. Wie verketten Sie Strings in Tcl präzise?
- 12. verketten Strings in bestimmten Spalten des Datenrahmens
- 13. Element in der Liste zu Strings verketten
- 14. Verketten von 2 Strings Problem in Oracle
- 15. schnelle Möglichkeit Strings in NodeJS/JavaScript verketten
- 16. Wie verketten Sie Strings in einer Schleife?
- 17. Strings verketten, während mit Figur Befehl (MATLAB)
- 18. Concatenate Strings rekursiv in C
- 19. Verketten von Strings funktioniert nicht wie erwartet
- 20. Wie verketten Sie Listen in C#?
- 21. Verketten Schreibparameter in C++
- 22. Verketten Variablennamen in C#
- 23. IEnumerables in C# verketten?
- 24. verketten Strings in 2 verschiedenen Listen in Python
- 25. Wie kann ich mehrere optionale Strings in swift 3.0 verketten?
- 26. Bash - verschwindende Werte beim Verketten von Strings
- 27. Variable-length-strings als Tabelle verketten
- 28. Verketten am Ende eines Strings - Python
- 29. Korrekte Art, variable Strings zu verketten
- 30. Verketten Strings in JSF/JSP EL und Javascript
Ich fürchte, Ihre Frage macht derzeit keinen Sinn. Kannst du etwas genauer sein? –
Danke für die Bearbeitung dieses Vinko, ich dachte, ich würde nur für meine Frage geflammt werden, aber ich habe tatsächlich bekommen, was ich wollte. Danke stackoverflow.com – austin
Austin, würde es Ihnen etwas ausmachen, Ihre akzeptierte Antwort zu markieren, die Ihnen am meisten hilft? –