Мне необходимо написать код, который читает строку и помещает буквы в строке, которые меньше 'm', в массив с именем first, а буквы с номером 'm' или больше помещаются в массив с именемпрошлой.Когда он встречает строчную букву, он должен просто пропустить ее и перейти к следующей.
Мой код здесь работает только в том случае, если в строке присутствуют буквы не нижнего регистра, но не работает, когда в нем присутствуют цифры и символы.
#include<stdio.h>
// main function
int main(void){
// declare strings
char letters[20], first[20], last[20];
// read in a lower-case string
printf("enter letters: ");
scanf("%19s",letters); //the number %19s limits the string to being
//19 characters long (plus the null character)
// setup indexes to track current index of arrays.
int letters_index, first_index, last_index;
letters_index=0;
first_index=0;
last_index=0;
char curr_letter ;
// loop and split
while(letters[letters_index] != 0) { // not null
switch (letters[letters_index]){
case 97 ... 122:
curr_letter = letters[letters_index];
// less than 'm'?
if(curr_letter < 'm'){
// add to first
first[first_index]=curr_letter;
first_index++;
} else {
// otherwise, add to last
last[last_index]=curr_letter;
last_index++;
}
letters_index++;
break;
}
}
// now add nulls
first[first_index]='\0';
last[last_index]='\0';
// print arrays
printf("first: %s\n",first);
printf("last: %s\n",last);
}
Если вводом является hell2o, выводдолжен быть первым: ад;последний: о