C primer plus 第六版 第十一章 第三題 程式設計練習答案

Aeron-A發表於2018-12-21

Github地址:φ(>ω<*)這裡這裡。

/*
    本次任務為設計並測試一個函式,要求從輸入行中把一個單詞讀入陣列,並丟棄剩餘字元。
      該函式要跳過第一個非空白字元前面的所有空白。
        將一個單詞定義為沒有空白、制符表或換行符的字元序列。
    ps:說白了不就建立一個陣列,獲取一個單詞並存入,然後清空緩衝區唄。
*/
 



#include<stdio.h>

#define o 100

void get(char name[o]);

int main(void)
{	
	char name[o] = {};   

	printf("Please input(Only first word can be save):\n");
	get(name);

	puts(name);
	putchar('\n');

	printf("Bye ~\n");
	getchar();

	return 0;
}
void get(char name[o])
{
	int i = 0;

	// 獲取輸入。
	while( (name[i] = getchar()) != NULL )
	{
		if(i > o || name[i] == '\n' || name[i] == ' ' )
		{
			name[i] = '\0';
			fflush(stdin);   // 這個就是丟棄剩餘輸入(清空輸入緩衝區)。。。簡單方便。。
			break;
		}

		i++;
	}

	return;
}

 

相關文章