Chaine de caractères

cs_Goldberg Messages postés 4 Date d'inscription mercredi 18 février 2004 Statut Membre Dernière intervention 26 février 2004 - 26 févr. 2004 à 00:13
cs_Goldberg Messages postés 4 Date d'inscription mercredi 18 février 2004 Statut Membre Dernière intervention 26 février 2004 - 26 févr. 2004 à 12:14
Bonjour, comment faire ern C pour
1) introduire deux chaines de caractère (en fait rien que des valeurs numériques)
2) pouvoir additionner les premiers termes ensembles, les seconds ensembles sans convertir cette chaine en nombre!

ex
1) j'introduis 14563365 et 1234566
2) 1+1=2, 4+2=6, 5+3=8, 6+4=10 ...

un tt grand merci d'avance

5 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 févr. 2004 à 01:52
char *c, *d;c chaine1; d chaine2;
while(*c && *d) {
affiche(*c + *d); // affichage ou autre
c++; d++;
}

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_Goldberg Messages postés 4 Date d'inscription mercredi 18 février 2004 Statut Membre Dernière intervention 26 février 2004
26 févr. 2004 à 11:29
ok merci
ce sont des pointeurs en fait?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 févr. 2004 à 11:34
Toujours, c'est l'arme fatale.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_Goldberg Messages postés 4 Date d'inscription mercredi 18 février 2004 Statut Membre Dernière intervention 26 février 2004
26 févr. 2004 à 12:12
#include <stdio.h>
#include <string.h>

main()

{
int a,b,c,d;
char tab1[80], tab2[80];
size_t length;

while (1)
{
puts("Entrez une première chaine.");
gets (tab1);
length = strlen(tab1); a=length;

puts("Entrez une seconde chaine.");
gets (tab2);
length = strlen(tab2); b=length;

if (a<=b) for (i=b-1; i>=b-a; i--) {c=b-a;j'aimerais faire tab1[i-c] + tab2[i] et afficher le résultat pour chaque i}
for(i=b-a-1; i>=0, i-- { afficher tab2[i]}

if (a>b) for (i=a-1; i>=a-b ; i-- ) { c=a-b; j'aimerais faire tab1[i]+tab2[i-c] et afficher le résultat pour chaque i;}
for (i=a-b-1; i>=0; i--) {afficher tab1[i]}
}

}




donc en fait j'introduis deux chaines
première = 12345 et je la mets ds un tableau donc tab1[0]=1, tab1[1]=2, tab1[2]=3, tab1[3]=4, tab1[4]=5; ensuite je compte le nombre d'élements de ce tableau a=5
deuxième = 123 et je la mets ds un second tableau tab2[0]=1, tab2[1]=2 et tab2[2]=3; je compte également le nbre d'élements b=3

ds ce cas j'ai a>b

donc je pars de i=a-1=4; c=a-b=2 et je fais
1) tab1[4]+tab2[i-c]=5+3=8 et j'aimerais afficher 8
2) tab1[3]+tab2[1]=4+2=6 et j'aimerais afficher 6
3) tab1[2]+tab2[0]=3+1=4 et j'aimerais afficher 4
mnt je suis arrivé à i<2 et donc je passe au second for :
tab1[1]=2, tab1[0]=1


pourrais-tu me complèter le prog pour que ça marche?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Goldberg Messages postés 4 Date d'inscription mercredi 18 février 2004 Statut Membre Dernière intervention 26 février 2004
26 févr. 2004 à 12:14
dsl j'ai pas mis tt les parenthèses

#include <stdio.h>
#include <string.h>

main()

{
int a,b,c;
char tab1[80], tab2[80];
size_t length;

while (1)
{
puts("Entrez une première chaine.");
gets (tab1);
length = strlen(tab1); a=length;

puts("Entrez une seconde chaine.");
gets (tab2);
length = strlen(tab2); b=length;

if (a<=b) {for (i=b-1; i>=b-a; i--) {c=b-a;j'aimerais faire tab1[i-c] + tab2[i] et afficher le résultat pour chaque i}
for(i=b-a-1; i>=0, i-- { afficher tab2[i]} } // fin du if

if (a>b) {for (i=a-1; i>=a-b ; i-- ) { c=a-b; j'aimerais faire tab1[i]+tab2[i-c] et afficher le résultat pour chaque i;}
for (i=a-b-1; i>=0; i--) {afficher tab1[i]} } // fin du if
} // fin du while
return 0;

} //fin du prog
0
Rejoignez-nous