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