Убрать из строки все символы, кроме строчных латинских букв - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Вот текст программы. Она убирает из максимум 50 слов длиной максимум 20 символов все символы кроме строчных латинских букв. Слова разделены пробелом, за последним словом точка. Программа отлажена и работает. Но есть один косяк. Она не читает самый первый символ. То есть, например: input vbdfsyuvb345678. output bdfsyuvb345678. Не могу найти косяк в программе. Подскажите, пожалуйста
#include<stdio.h>
#include<conio.h>
#include<string.h>
 
void main()
{
int a,i,b,j,n,z,v;
char A[50][21],X[50][21];
printf("Enter strings:\n");
for(n=0;n<50;n++)
{
if(getchar()=='.')
break;
scanf("%[^ .]",&A[n]);
}
for(a=0;a<n;a++)
{
char word[20];
    for(int q=0;q<20;q++)
    word[q]='\0';
    char newword[20]={NULL};
    for(int p=0;p<20;p++)
    word[p]=A[a][p];
    v=0;
for(b=0;b<strlen(word);b++)
    {
    if((word[b]>='a')&&(word[b]<='z'))
        {
        newword[v]=word[b];
        v++;
        }
    }
strcpy(X[a],newword);
}
printf("Result strings:\n");
for(z=0;z<n-1;z++)
    {
    printf("%s ",&X[z]);
    }
printf("%s.",&X[z]);
getch();
}

Решение задачи: «Убрать из строки все символы, кроме строчных латинских букв»

textual
Листинг программы
for(n=0;n<50;n++)
{
if(getchar()=='.')
break;
scanf("%[^ .]",&A[n]);
}

Объяснение кода листинга программы

  1. n - это счетчик, который итерирует от 0 до 49
  2. getchar() - это функция, которая считывает один символ из стандартного ввода
  3. scanf(%[^ .],&A[n]) - это функция, которая считывает строку, состоящую из любых символов, кроме точки, и сохраняет ее в массиве A
  4. A[n] - это элемент массива A, в который сохраняется считанная строка

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы