Ich habe ein String-Array von Zahlen:Überprüfen Sie, ob das gesamte Array von Zeichen in C nur Zahlen sind, und geben Sie true zurück, wenn ja?
char numbers[5][10] = { "123456789", "00", "abc5xyz", "", "987654321" };
ich dieses Array an eine Funktion:
for(i=0; i<5; i++) {
MyFNatoi(numbers[i], &value);
printf("array: '%s' int value: %d\n", numbers[i], value);
}
In dieser Funktion, wie könnte ich überprüfen, ob der gesamte String nur Zahlen und return true wenn ja? Bisher alles was ich habe ist:
MyFNatoi(char *numArray, int *value) {
int i;
for (i = 0; i < 10; i++) {
if (numArray[i] > 47 && numArray[i] < 58) {
printf("%c", numArray[i] - 0);
// sscanf(p, "%d", &value);
}
}
}
Und das gerade zurückgibt:
123456789array: '123456789' int value: -1217188485
00array: '00' int value: -1217188485
5array: 'abc5xyz' int value: -1217188485
array: '' int value: -1217188485
987654321array: '987654321' int value: -1217188485
Ich versuche Wert Variable zu bekommen das Äquivalent der Zeichenfolge zu sein. Wenn also die Zeichenfolge 123456789
ist, sollte value
123456789
sein. Wenn es abc5xyz
ist, sollte value
0
sein.
es bisher wandelt nur die Zeichen auf ein 0 und kehrt :(
volle Quelle
#include <stdio.h>
MyFNatoi(char *numArray, int *value) {
int i;
for (i = 0; i < 10; i++) {
if (numArray[i] > 47 && numArray[i] < 58) {
printf("%c", numArray[i] - 0);
// sscanf(p, "%d", &value);
}
// printf("%c", numArray[i]);
}
// printf("- ");
}
int main() {
char numbers[5][10] = { "123456789", "00", "abc5xyz", "", "987654321" };
int i, value;
for(i=0; i<5; i++) {
MyFNatoi(numbers[i], &value);
printf("array: '%s' int value: %d\n", numbers[i], value);
}
return 0;
}
Vielen Dank für Ihre Eingabe. – eveo
+1 für Null ist eine gültige ganze Zahl. – hmjd
@ eveo; Beachten Sie, dass Leerzeichen hier die Nummer nicht disqualifizieren. Oft was man will, aber trotzdem/gut zu wissen. Auch Zahlen> INT_MAX werden auf INT_MAX gekürzt (und nummeriert
Morpfh