Убрать из строки все символы, кроме строчных латинских букв - 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]);
}
Объяснение кода листинга программы
n- это счетчик, который итерирует от 0 до 49getchar()- это функция, которая считывает один символ из стандартного вводаscanf(%[^ .],&A[n])- это функция, которая считывает строку, состоящую из любых символов, кроме точки, и сохраняет ее в массивеAA[n]- это элемент массиваA, в который сохраняется считанная строка