Fonction sous_mot
Fermé
black light
Messages postés
29
Date d'inscription
lundi 28 octobre 2013
Statut
Membre
Dernière intervention
20 février 2015
-
Modifié par Chris 94 le 29/10/2013 à 02:17
black light Messages postés 29 Date d'inscription lundi 28 octobre 2013 Statut Membre Dernière intervention 20 février 2015 - 1 nov. 2013 à 21:47
black light Messages postés 29 Date d'inscription lundi 28 octobre 2013 Statut Membre Dernière intervention 20 février 2015 - 1 nov. 2013 à 21:47
A voir également:
- Fonction sous_mot
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Fonction remplacer word - Guide
- Excel renvoyer la valeur d'une cellule en fonction d'une autre - Forum Logiciels
2 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
29 oct. 2013 à 18:54
29 oct. 2013 à 18:54
Au lieu de int sous_mot(char m1[30];char m2[30]);
tu peux mettre : int sous_mot(char m1[30],char m2[30])
=> J'ai enlevé le ; entre les deux arguments ET le ; de fin de ligne.
if (l2=>l1)
C'est >= et non =>
for(i=k,j=0;i<l1,j<l2;i++;j++)
Il faut mettre une , entre i++ et j++ => i++,j++
Ta fonction est censée retournée un int. Il faut donc mettre un return dedans...
Cdlt,
tu peux mettre : int sous_mot(char m1[30],char m2[30])
=> J'ai enlevé le ; entre les deux arguments ET le ; de fin de ligne.
if (l2=>l1)
C'est >= et non =>
for(i=k,j=0;i<l1,j<l2;i++;j++)
Il faut mettre une , entre i++ et j++ => i++,j++
Ta fonction est censée retournée un int. Il faut donc mettre un return dedans...
Cdlt,
je suis pas sur,
mais je pense que ton erreur vient de
les char sont des tableaux, et là tu n'envois que la 30e case de ton tableau.
Tu devrais travail avec des pointeurs, ou envoyer m1[0] et m2[0], qui sont les 1er cases!
mais je pense que ton erreur vient de
int sous_mot(char m1[30];char m2[30]);
les char sont des tableaux, et là tu n'envois que la 30e case de ton tableau.
Tu devrais travail avec des pointeurs, ou envoyer m1[0] et m2[0], qui sont les 1er cases!
black light
Messages postés
29
Date d'inscription
lundi 28 octobre 2013
Statut
Membre
Dernière intervention
20 février 2015
29 oct. 2013 à 16:58
29 oct. 2013 à 16:58
merci j'avais po fait attention à ça mais il y-a tjr des msg d'erreur:
error:invalid suffix "o" on integer constant
error:expected identifier or '(' before '{' token
error:invalid suffix "o" on integer constant
error:expected identifier or '(' before '{' token
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
Modifié par fiddy le 29/10/2013 à 18:50
Modifié par fiddy le 29/10/2013 à 18:50
@evifalcon
int sous_mot(char m1[30];char m2[30]);
les char sont des tableaux, et là tu n'envois que la 30e case de ton tableau.
Non les char ne sont pas des tableaux. Ce sont des chars. Et si tu écris char m1[30] tu n'envoies pas le 30ème (31ème serait plus juste d'ailleurs) caractère. Tu envoies un pointeur sur le 1er élément. D'où l'écriture identique : int sous_mot(char *m1, ...)
L'erreur ici est surtout le ";" pour séparer les paramètres. Ainsi qu'en fin de lignes.
@nagashima
int sous_mot(char [30] m1,char [30] m2);
T'es sûr de ton coup ? J'ai jamais vu cette syntaxe...
int sous_mot(char m1[30];char m2[30]);
les char sont des tableaux, et là tu n'envois que la 30e case de ton tableau.
Non les char ne sont pas des tableaux. Ce sont des chars. Et si tu écris char m1[30] tu n'envoies pas le 30ème (31ème serait plus juste d'ailleurs) caractère. Tu envoies un pointeur sur le 1er élément. D'où l'écriture identique : int sous_mot(char *m1, ...)
L'erreur ici est surtout le ";" pour séparer les paramètres. Ainsi qu'en fin de lignes.
@nagashima
int sous_mot(char [30] m1,char [30] m2);
T'es sûr de ton coup ? J'ai jamais vu cette syntaxe...
donc non la syntaxe qu'il utilisait était bonne :
char* test(char a [30], char b [30])
{
char* r = new char[60];
for(int i = 0; i < 30 ; i++)
{
r[i] = a[i];
r[59-i] = b[i];
}
return r;
}
int main(int argc, char** argv) {
printf("%s",test("azertyuiopmlkjhgfdsqwxcvbnmpol","123456789012365478963589621478"));
system("PAUSE");
return 0;
}
29 oct. 2013 à 22:35
int main()
{char ch1[30],ch2[30],int x;
.........
29 oct. 2013 à 22:40
29 oct. 2013 à 23:22
Mets un ; entre le ch2[30] et le int x; au lieu de la virgule.
D'ailleurs, il faut éviter de tout mettre sur une ligne. Mets plutôt une déclaration par type par ligne :
char ch1[30], ch2[30];
int x;
C'est plus clair.
29 oct. 2013 à 23:27
29 oct. 2013 à 23:40