J'essaie de concaténer des personnages en C, mais pas de succès. Le problème est de prendre une chaîne, de vérifier s'il y a de l'espace dans cette chaîne et créez une nouvelle chaîne à partir des lettres qui arrivent après l'espace dans cette chaîne principale.
Exemple:
String principale: hello world wide
[.____] nouvelle chaîne: hww
Je ne sais pas comment concaténer. J'ai étudié sur Internet, j'ai vu que les fonctions strcpy
et strcat
peuvent être utiles, mais même les utiliser, je n'ai pas réussi. De la même manière, j'ai essayé de faire quelque chose comme result += string[i + 1]
et ça ne marche pas.
code source
#include <stdio.h>
#include <string.h>
int main()
{
char string[] = "str ing placeholder";
int stringLength = strlen(string);
int i;
char result;
for (i = 0; i < stringLength; i++)
{
if (string[i] == ' ')
{
printf("Found space at the index: %d\n", i);
result = string[i + 1];
printf("\nNext char: %c\n", result);
}
}
return 0;
}
J'espère que quelqu'un peut me guider. Je ne pense pas que ma logique de programme a tort, tout ce dont j'ai besoin, c'est de prendre le premier caractère de la chaîne et de chaque caractère qui suit l'espace d'une chaîne et concaténate dans une nouvelle chaîne, puis présentez cette chaîne nouvellement formée.
Si vous devez modifier le tableau source de telle manière qu'il ne contiendrait que des premiers caractères de mots dans la chaîne stockée, le programme peut apparaître la voie suivante.
#include <string.h>
#include <stdio.h>
int main( void )
{
char s[] = "str ing placeholder";
const char *delim = " \t";
for ( char *p = s + strspn( s, delim ), *q = p; *q; p += strspn( p, delim ) )
{
*q = *p;
if ( *q ) ++q;
p += strcspn( p, delim );
}
puts( s );
return 0;
}
La sortie du programme est
siroter