Separar dígitos (numéticos) de caracteres en una cadena
Publicado por Iret (4 intervenciones) el 06/12/2020 00:01:10
Tengo una cadena de caracteres que tiene dígitos: '1' '2' '3' ... '9' y letras mayusculas y minusculas. Necesito guardar todos los numeros (convirtiéndolos de char a int) en una variable int n que aparezcan antes de un caracter dado, y ese caracter guardarlo en una variable c.
Ej. 85xxx -> en n guardaría 85 y en c guardaría x.
No me funciona este código que he escrito porque trata a los caracteres letras como si fuesen dígitos y los guarda en n.
¿Me puede ayudar?
Muchas gracias!!
CÓDIGO:
Ej. 85xxx -> en n guardaría 85 y en c guardaría x.
No me funciona este código que he escrito porque trata a los caracteres letras como si fuesen dígitos y los guarda en n.
¿Me puede ayudar?
Muchas gracias!!
CÓDIGO:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void leeNumeroYCaracter(char cadena[],char &c, int &n){
if (cadena[0]=='\0'){
n=0;
c='\0';
}
else{
for (int i=0;cadena[i]!='\0'&&c=='\0';i++){
if ('1'<=cadena[i]<='9'){
n=n*10+((cadena[i]-48)%10);
}
else if ('A'<=cadena[i]<='Z'||'a'<=cadena[i]<='z'){
c=cadena[i];
}
}
}
Valora esta pregunta


0