C语言之字符串的存储和表示(输入和输出) | 您所在的位置:网站首页 › C语言多组输入字符串 › C语言之字符串的存储和表示(输入和输出) |
C语言之字符串的存储和表示 逐个字符输入输出字符串在C语言中字符串是保存在数组中的,因此在输入一串字符的时候我们需要先定义一个数组。 #define STR_LEN 80 char str[STR_LEN+1];一般我们习惯将宏定义STR_LEN设置为字符串的长度,但字符串需要用‘\0’结尾所以在定义数组的时候我们要加一。 逐个输入我们需要知道字符串的长度,以此才能判断循环的次数 for(int i=0;i putchar(str[i]); } 整体输入输出字符串两种方式 一、 scanf("%s",str); printf("%s\n",str);二、 gets(str); puts(str);其中第二种的输出在输出时会自动换行,所以这两个代码的输出效果是一样的。 不同的是输入 用scnaf输入字符串因为以%s输入字符串时,在开始读之前会跳过回车、空格、换行符这些空白字符,再次遇到空白字符就就读入结束了。因此这种方法无法读入空格、制表符这些空白字符 例如,运行以下代码时 #include #define STR_LEN 80 int main() { char str[STR_LEN+1]; printf("input a sting:"); scanf("%s",str); printf("%s\n",str); return 0; }我们输入hellow world 因为gets函数是以换行作为终止符的,所以我们可以输入空格或者制表符,这样空格也是字符串的一部分了 #include #define STR_LEN 80 int main() { char str[STR_LEN+1]; printf("input a sting:"); gets(str); return 0; }我们输入hellow world 我们输入hellow
我们输入hellow 而gets()函数就会读走输入缓存区的回车符,因此不需要在gets()函数后加入getchar()去消去输入缓存区的回车符。 |
CopyRight 2018-2019 实验室设备网 版权所有 |