scanf掃瞄字串總結

2021-10-11 18:47:16 字數 1335 閱讀 7922

scanf 是我們學c語言時候最先接觸到的,是用來接收輸入的.出現的測試題很多都是從乙個檔案讀取,我們就會用到 fscanf 如果用不好,就很麻煩

預設是遇到 空格 tab鍵 換行,就結束乙個串的掃瞄

使用類似正規表示式的限定字元集合 用方括號括起來在% 和 s 之間 。例如: %[a-z 0-9]s 包含 a-z 空格和0-9 的串

char buf[20] = ;

scanf("%5s",buf,6); //6 包含了內容+\0 字元的長度

但是遇到 空格、tab、換行就要停止掃瞄和%s一樣

比如上面例子: 輸入 「he is a beautiful man」 就會得到 he

使用scanf

sscanf

fscanf

來作為例子說明一下

#include #include void test1()

; char buf1[max_buf] = {};

scanf("%s%s",buf,buf1);

printf("%s %s\n", buf,buf1);

file* fp = fopen("d:\\test\\input.txt", "r");

fscanf(fp, "%s%s", buf, buf1);

printf("%s %s\n", buf, buf1);

}void test2()

; scanf("%[a-z \t0-9]s", buf);

printf("%s\n", buf);

}void test3()

; file* fp = fopen("d:\\test\\input.txt", "r");

fscanf(fp, "%[a-z \t0-9]s", buf);

printf("%s\n", buf);

}void test4()

; char buf_input[max_buf] = ;

sscanf(buf_input,"%[a-z \t0-9]s", buf);

printf("%s\n", buf);

}void test5()

; char buf_input[max_buf] = ;

sscanf(buf_input, "%4096s", buf,4096);

printf("%s\n", buf);

}void test6()

; scanf("%5s", buf,6);

printf("%s\n", buf);

}int main()

字串 scanf函式輸入字串詳解

除了在定義字元陣列時初始化外,還可以通過scanf從鍵盤輸入字串。下面寫乙個程式 用 scanf 給字元陣列賦值不同於對數值型陣列賦值。前面講過,給數值型陣列賦值時只能用 for 迴圈乙個乙個地賦值,不能整體賦值。而給字元陣列賦值時可以直接賦值,不需要使用迴圈。此外從鍵盤輸入後,系統會自動在最後新增...

scanf寫入字串給指標

include stdio.h main a 3 int i for i 0 i 3 i scanf d s a i nu,a i name for i 0 i 3 i printf 3d s n a i nu,a i name c語言是比較低階的語言,沒有字串概念,只有字元陣列,不能自動分配空間,...

scanf 格式化字串詳解

scanf格式控制的完整格式 m l或h 格式字元 格式字元與printf函式中的使用方式相同,以 d o x c s f e,無 u格式 g格式。可以指定輸入資料所佔列寬,系統自動按它擷取所需資料。如 scanf 3d 3d a,b 輸入 123456 系統自動將123賦給a,456賦給b。後的 ...