Bonsoir,
J'essaye de créer une fonction permettant de "couper" un texte lorsqu'il est trop long.
In fine, ce code est censé me servir à couper un texte trop long en sdl et créer une nouvelle ligne.
Le programme que j'ai créé est fonctionnel, seulement en plus de le trouver peu élégant, j'ai 2 warnings :
warning: format '%s' expects argument of type 'char *', but argument 2 has type 'char (*)[60]' [-Wformat=]
Evidemment, je sais que cela va me poser problème pour l'avenir (c'est un problème qui devient récurant pour moi).
Pourriez vous m'expliquer comment améliorer ce code?
Notamment en m'expliquant pourquoi un char est différent d'un array? Comment passer de l'un a l'autre? (j'ai beau eu cherché sur internet, je n'ai pas trouvé de réponse compréhensible... )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { char texte1[60]; char texte2[60]; }Texte; void ScinderTexte(Texte *x, char testtexte[], int longueur); int main() { Texte test; memset(&test,0,sizeof(test)); char testtexte[] = "Alors on va tester cette nouvelle fonction qui me semble etre deja vouer a buger"; ScinderTexte(&test, testtexte, 40); printf("%s\n", &test.texte1); printf("%s\n", &test.texte2); return 0; } void ScinderTexte(Texte *x, char testtexte[], int longueur) { int i =0; for (i = 0; i < strlen(testtexte); i++) { if (i < longueur) { x->texte1[i] = testtexte[i]; } else { x->texte2[i - longueur] = testtexte[i]; } } }
Partager