Вырезать первую букву вывода с помощью fgets в C
Привет.
Я хочу дать ввод через fgets() ,но у меня проблемы.
Например, я даю :
привет и я принимаю Элло
Я передаю привет мир я получаю Элло мира
Как ее решить?
Спасибо!!!
Код:
Что я уже пробовал:
<pre>#include <stdio.h> #include <stdlib.h> char *input(); int main(void) { while(1) { char *a = input(); printf("%s..." , a); } } char *input() { printf("Give: "); char *word = malloc(sizeof(char) * 50); fgetc(stdin); fgets(word , 100 , stdin); return word; }
Я немного изменил код (в моей базовой программе (это был просто тест)) ,и теперь вот так:
char *word = malloc(sizeof(char) * 100); fgets(word , sizeof(word) , stdin); / while (fgets(word,sizeof(word),stdin) != NULL) { break; } size_t len = strlen(word) - 1; if (word[len] == '\n') //without newline { word[len] = '\0'; } return word;
Он идеально подходит для простых слов ,но когда я даю предложение ,например :
Привет мир ,я получаю привет w (без "orld").......