Comment affecter des valeurs au membre struct caractère par caractère. Je voudrais faire quelque chose commestructure caractère par caractère dans c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct s
{
char *z;
};
int main()
{
struct s *ss;
ss = malloc(2 * sizeof *ss);
char *str = "Hello World-Bye Foo Bar";
char *a = str;
int i = 0;
while (*a != '\0') {
if (*a == '-')
i++;
else ss[i].z = *a; // can I do this?
a++;
}
for(i = 0; i<2; i++)
printf("%s\n",ss[i].z);
}
Je peux obtenir quelque chose comme:
ss[0].z = "Hello World"
ss[1].z = "-Bye Foo Bar"
Edit: oublié de mentionner, le nombre de "-" dans str
peut varier.
@pmg: #s retiré :) – Mike
J'aime mieux ça. bienvenue à SO :-) – pmg
Le nombre de '-' dans la chaîne de changement ne change pas grand chose. Essentiellement, vous voulez répéter le processus que j'ai décrit de manière à ce que vous terminiez la chaîne précédente où vous avez trouvé le prochain '-' et appelez à nouveau strdup, mais en utilisant la chaîne en cours. – Flexo