Обработка строки: выписать в новую строку целые десятичные константы - C (СИ)
Формулировка задачи:
Здравствуйте,имеется задание:
Переписать слова, которые представляют собой правильную целую десятичную константу.
Есть даже наработка,даже наверное больше скажу,программа в какой-то степени работает,но вот в чем проблема,мне необходимо,чтобы она не выписывала в новую строку числа,которые начинаются с 0(по факту это же не десятичная константа),вот мой код,спасибо за раннее
Листинг программы
- #include "stdio.h"
- #include "math.h"
- #include "conio.h"
- #include "windows.h"
- #include<string.h>
- int main ()
- { int i,i1,i2,n,Kol_Digit;
- char s1[80], s2[80]="",slovo[30];
- SetConsoleOutputCP (1251);
- SetConsoleCP (1251);
- printf("\aВведите строку\n");
- gets(s1);
- printf("Исходная строка\n");
- puts(s1);
- i=0;
- while(i<strlen(s1))
- { //Определяем позицию начала слова
- while(i<strlen(s1) && s1[i]==' ')i++;
- if(i<strlen(s1))//
- {
- i1=i; //начало текущего слова
- while(i<strlen(s1) && s1[i]!=' ')i++; //конец текущего слова
- n=i-i1; //длина текущего слова
- strncpy(slovo,&s1[i1],n); //копируем текущее слово в
- slovo[n]=' '; //поле slovo, добавляем пробел
- slovo[n+1]='\0'; //и символ '\0'
- Kol_Digit=0; //Количество символов, являющихся цифрой
- for(i2=0;i2<strlen(slovo)-1;i2++)
- { //проверка, является-ли текущий символ строки цифрой
- if(isdigit((unsigned char)slovo[i2] ))
- Kol_Digit++;
- else
- break;//Найден символ "не цифра". Цикл можно прервать
- }
- if(Kol_Digit==strlen(slovo)-1 && slovo[1]!='0') //Последний символ - пробел
- strcat(s2,slovo);//Переписываем текущее слово в результирующую строку.
- }
- }
- s2[strlen(s2)-1]='\0';//В конце результирующей строки удаляем лишний пробел.
- printf("Результирующая строка длиной %d\n",strlen(s2));
- puts(s2);
- getch ();
- return 0;
- }
Решение задачи: «Обработка строки: выписать в новую строку целые десятичные константы»
textual
Листинг программы
- if(Kol_Digit==strlen(slovo)-1 && slovo[1]!='0') //Последний символ - пробел
- strcat(s2,slovo);//Переписываем текущее слово в результирующую строку.
Объяснение кода листинга программы
- В условии проверяется, является ли последний символ строки пробелом и не является ли он нулем.
- Если условие выполняется, то с помощью функции strcat к результирующей строке добавляется текущее слово.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д