C語言從控制檯輸入一個字串,然後賦值給變數
阿新 • • 發佈:2019-02-09
一、常規程式碼:
char name[5];
printf("Name: ");
scanf("%s", name);
printf("Name = %s\n", name);
測試:
1、輸入“abc”, 輸出“abc”,正確
2、輸入“ab c”, 輸出“ab”, 出錯,原因是scanf碰到空格就結束了
3、輸入“012345”,沒有輸出直接出錯了,原因是輸入的字串長度大於5
二、使用gets函式
char name[5];
printf("Name: ");
gets(name);
printf("Name = %s\n", name);
測試:
1、輸入“abc”, 輸出“abc”,正確
2、輸入“ab c”, 輸出“ab c”, 正確
3、輸入“012345”,沒有輸出直接出錯了,原因是輸入的字串長度大於5
三、使用getchar自定義一個函式
#include <stdio.h> #include <stdlib.h> #define N 5 void GetString(char *p, int p_len) { char c; int i = 0; while((c = getchar()) != '\n') { if(i < p_len) { p[i] = c; i++; } else { break; } } p[i] = '\0'; } int main(int argc, char *argv[]) { char name[N]; printf("Name: "); GetString(name, N); printf("Name = %s\n", name); return 0; }
測試:
1、輸入“abc”, 輸出“abc”,正確
2、輸入“ab c”, 輸出“ab c”, 正確
3、輸入“012345”,輸出“01234”, 正確