Перевод текста из чисел 0-9 в число - C (СИ)
Формулировка задачи:
Дан текст. Если в нём записано символы '0'-'9' перевести его в число.
#include <stdio.h> #include <stdlib.h> void main() { const char * str="123456";//TEXT int n; n=atoi(str); printf("%d\n",n); }
Как исправить?
#include <stdio.h> #include <stdlib.h> #include <locale.h> #define TRUE 1 #define FALSE 0 void main() { setlocale(LC_ALL,"Rus"); const char * str="123456";//TEXT int flag=EOF; while(*str){ if(*str>='0' && *str<='9'){ flag=TRUE; } else{ flag=FALSE; break; } str++; } int n; if(flag==TRUE){ n=atoi(str); printf("%d\n",n); } else printf("Ошибка! Текст должен состоять из символом от 0 до 9\n"); }
РЕШИЛ
#include <stdio.h> #include <stdlib.h> #include <locale.h> #define TRUE 1 #define FALSE 0 int text(const char * a) { int flag=EOF; while(*a){ if(*a>='0' && *a<='9'){ flag=TRUE; } else{ flag=FALSE; break; } a++; } return flag; } void main() { setlocale(LC_ALL,"Rus"); const char * str="123456";//TEXT int n; if(text(str)==TRUE){ n=atoi(str); printf("%d\n",n); } else printf("Ошибка! Текст должен состоять из символом от 0 до 9\n"); }
Решение задачи: «Перевод текста из чисел 0-9 в число»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main(void) { char *str = "123456"; const int n = strtol(str, &str, 10); if (*str == '\0') printf("%d\n", n); else printf("Error\n"); return 0; }
Объяснение кода листинга программы
В этом коде задача состоит в том, чтобы перевести строку чисел в целое число.
- Строка
123456
сохраняется в переменной типа char* под именем str. - В функции strtol() первый аргумент - это строка, которую нужно преобразовать, второй - это указатель на первый символ строки, третий - это основание системы счисления (в данном случае 10, что означает десятичную систему).
- Функция strtol() возвращает число, которое можно сохранить в переменной типа int под именем n.
- Проверяется, является ли последний символ строки нулевым ('\0'). Если да, то выводится число n, иначе выводится сообщение об ошибке. Список переменных:
- str - указатель на строку
123456
- n - переменная для хранения результата преобразования строки в число
- str - указатель на первый символ строки (используется в функции strtol())
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д