Gegeben eine Zeichenfolge 'string' zum Beispiel, ich möchte erhalten, während iterieren: 'string', 'strin', 'tring', 'stri', 'trin, 'Ring', 'str', ..., 'ich', 'n', 'g'.Wie man über Kombinationen einer Zeichenkette iteriert
0
A
Antwort
3
char str[] = "string";
int len = strlen(str);
for(int s_len = len; s_len > 0; --s_len)
for(int start = 0; start + s_len <= len; ++start)
printf("%.*s\n", s_len, str + start);
+0
Ich wusste bis heute nicht über das '*' Format in printf() ... Cool! –
0
Ich weiß nicht einfacher Weg. Um Iterationen zu speichern, können Sie sprintf
verwenden. Dies ähnelt printf
, druckt die Ausgabe jedoch in eine Zeichenfolge.
prüfen dies:
char buf[33]="";
for (i = 0; i < strlen(str); i++)
{
for (j = 0; j <= i; j++)
{
for (k = j; k < j+strlen(str) - i; k++)
{
sprintf(buf+strlen(buf), "%c", str[k]);
//printf("%c", str[k]);
}
buf[strlen(buf)] = '\0'; //adding null terminate
printf("%s", buf);
buf[0] = '\0'; //terminating from begining to reuse buf
printf("\n");
}
}
1
Wie über die Strncpy mit folgenden() und memset() aus der String-Bibliothek:
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
char str[] = "string";
int len = strlen(str);
int sz = len + 1;
char cpy[sz];
for (int i=0; i<len; ++i)
for (int j=i; j<len; ++j)
printf("%s\n", strncpy(memset(cpy, 0, sz), &str[i], len-j));
}
Ausgang:
string
strin
stri
str
st
s
tring
trin
tri
tr
t
ring
rin
ri
r
ing
in
i
ng
n
g
1
Eine Lösung mit snprintf() und puts():
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
char str[] = "string";
int len = strlen(str);
int sz = len + 1;
char cpy[sz + 1]; /* sz of str + 1 (for '\n') */
for(int i=0; i<sz; ++i)
for(int j=i; j<len; ++j) {
snprintf(cpy, sz-j, "%s\n", &str[i]);
puts(cpy);
}
}
Ausgang:
string
strin
stri
str
st
s
tring
trin
tri
tr
t
ring
rin
ri
r
ing
in
i
ng
n
g
Verwandte Themen
- 1. Wie man über die Schlüssel in einer Zeichenkette iteriert?
- 2. Wie iteriert man über eine Zeichenkette nach Zeichen
- 3. Wie man Array-Kombinationen mit konstanter Summe effizient iteriert?
- 4. Wie man über ein TR1-Tupel iteriert
- 5. Wie man über mehrere erwartete Zeilen iteriert
- 6. Wie man über eine TreeMap iteriert?
- 7. Wie man über eine priority_queue iteriert?
- 8. Wie man über eine Tabelle iteriert?
- 9. Wie man über verschiedene Kwarts iteriert?
- 10. Wie man über die ersten n Elemente einer Liste iteriert?
- 11. Wie man über Breitengrad Längengraden einer grib2 Datei iteriert?
- 12. Wie man über Ordinalrichtungen über einen Punkt (x, y) iteriert?
- 13. Wie man durch Buchstaben in einer Zeichenkette in Rust iteriert, um Wörter zusammenzubringen?
- 14. Ansible: Wie man über eine Rolle mit einem Array iteriert?
- 15. Wie man über jedes aktive GamePad in XNA iteriert
- 16. Spark: Wie man über Spark ArrayType als Ausdruck iteriert
- 17. SAPUI5/OPA5 Tests: Wie man über mehrere Kontrollen iteriert
- 18. Wie man über Ergebnisse in Realm mit Swift iteriert
- 19. Wie man mit For-Schleifen über ein Wörterbuch iteriert?
- 20. Wie man über alle Teilmengen einer Reihe von Zahlen iteriert, die zu ungefähr 0 reichen
- 21. Wie man über nicht-englische Dateinamen in PHP iteriert
- 22. Wie man über Listen von der Mitte aus iteriert
- 23. Wie man über eine boost :: fusion sequenz iteriert?
- 24. Netlogo: Wie man über Agentset iteriert und variable Geschwindigkeit einstellt
- 25. Wie man über unbekannte Spalten in XSLT iteriert
- 26. Wie man über Positionsparameter in einem Bash-Skript iteriert?
- 27. Numpy, wie man über Spalten des Feldes iteriert?
- 28. Wie man über die Liste der Wörterbücher in bash iteriert
- 29. Wie iteriert man über alle DbSet in einem generischen?
- 30. Wie man über einen Hash in Ruby iteriert?
Was Ihre Ausgaben ist? Was haben Sie in Ihrem Debugging gefunden? – t0mm13b