#c #printf
#c #printf
Вопрос:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void){
char noun[25];
char plural[28];
fgets(noun,24,stdin);
strcpy(plural,noun);
int len=strlen(plural);
if(plural[len-2]=='h'||plural[len-2]=='s'){
plural[len-1]='e';
plural[len]='s';
plural[len 1]='';
}else if(plural[len-2]=='y'){
plural[len-2]='i';
plural[len-1]='e';
plural[len]='s';
plural[len 1]='';
}else{
plural[len-1]='s';
plural[len]='';
}
printf("The plural of noun %s is %sn",noun,plural);
return 0;
}
вывод всегда такой:
«Множественное число существительного horse
это лошади»
хотя я не ставлю n в середине printf, только в конце.
Комментарии:
1. Итак, вы прочитали справочные страницы функций, которые вы используете? Подсказка: ответ можно легко найти там.
2. Подсказка: Что в
noun
?3. технически я использую только strcpy(), который не добавляет новую строку.
4. Ваш
strcpy
вызов выполняет запись вplural
, а неnoun
.5. @KeithThompson Тогда это не операция.
Ответ №1:
fgets получает завершающий символ новой строки из стандартного ввода, когда вы нажимаете enter. Следовательно, существительное заканчивается символом новой строки
Комментарии:
1. спасибо вам, я сделал то, что сказал Olaf, и выяснил это, любая помощь о том, как ограничить ввод 25 символами в scanf. это этот scanf («% 25s», существительное)