Перевод текста из чисел 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())
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д