2015年6月7日 星期日

[C] %s 的使用



當使用 %s 於 printf 和 scanf 時,  對應的argument 必須是 char * , 如下列例子:

char *str_constant = "I point to a string literal";
char str_buf[] = "I am an array of char initialized with a string literal";

printf("string literal = %s\n", "I am a string literal");
printf("str_constant = %s\n", str_constant);
printf("str_buf = %s\n", str_buf);

scanf("%55s", str_buf);

值得注意的是, 看以下小程序,

#define  max  5
----------------------
        char *name[max];

int i;
for (i = 0; i < max; i++){
name[i] = malloc(3);
scanf("%3s", name[i]);
printf("%s\n", name[i]);
                free(name[i]);
}

// 使用scanf前必須用使用 malloc 為每個char * pointer 動態分配位置記存字符
// %3s , 即指只讀取讀入字串的前3個字符





沒有留言:

張貼留言