Я пытаюсь взять слова в предложении и расположить их в алфавитном порядке. он должен уметь различать прописные и строчные буквы, но у меня возникают проблемы с тем, чтобы он делал только строчные буквы.
Если я введу по одному слову за раз, он будет алфавитизирован, но после ввода нескольких слов это будет странно. Если я введу "i need help"
, я ожидаю получить "i deen ehlp"
; вместо этого я получаю "i dnee ehlp"
Вот мой код:
#include <stdio.h>
#include <string.h>
int main (void)
{
int i, j, k, l=0, m=0, s=0, N=100;
printf("input a sentence with no more than 100 characters \n");
char sentence[N];
scanf("%[^\n]s", sentence);
int slength=strlen(sentence);
printf("Sentence before sorting - %s \n", sentence);
/*capital string keeps track of position of capital letters*/
int capital[slength];
for (i = 0; i < slength-1; i++)
{
for (j = i+1; j < slength; j++)
{
/*make uppercase letters lowercase */
if (sentence[j-1] <=90 && sentence[j-1]>64)
{
capital[l]=i;
sentence[i]=sentence[i]+32;
}
/* skip to next word if a space is detected */
if(sentence[j]==' ')
{
i=j+1;
j=j+2;
}
/*alphabetize loop*/
if (sentence[i] > sentence[j])
{
k = sentence[i];
sentence[i] = sentence[j];
sentence[j] = k;
}
}
}
printf("Sentence after sorting - %s \n", sentence);
return 0;
}