字符串的输入输出

发布于:2023-01-18 ⋅ 阅读:(488) ⋅ 点赞:(0)

目录

1.字符串的输出

2.字符串的输入

2.1scanf无法输入空格、tab和回车

2.2scanf设置输入字符串长度


1.字符串的输出

字符串的输出较为简单,使用printf函数即可,格式为:

printf("%s",string)//其中string为对应字符串,使用%s进行字符串占位。

#include<stdio.h>

void main(void)
{
    char string[]="Hello World!";
    printf("%s",string);
}

 运行结果为:

Hello World!

2.字符串的输入

使用scanf函数即可,格式为:

scanf("%s",string)//其中string为对应字符串数组名。

#include<stdio.h>

void main(void)
{
    char string[12];
    printf("请输入字符串:");
    scanf("%s",string);
    printf("您输入的字符串为:%s",string);
}

运行结果为:

请输入字符串:1234
您输入的字符串为:1234

用scanf函数进行字符串输入涉及两个问题:一是空格、tab键和回车这样的特殊字符能否输入;二是scanf将需要输入的字符串以字符串数组的形式存放在预先定义的内存中,如果需要存放的字符串长度大于预定义的长度,那么就会出现溢出的问题。

2.1scanf无法输入空格、tab和回车

测试程序如下:

#include<stdio.h>

void main(void)
{
    char string0[8],string1[8];
    printf("请输入字符串0:");
    scanf("%s",string0);
    printf("请输入字符串1:");
    scanf("%s",string1);
    printf("您输入的字符串为:%s%s",string0,string1);
}

在调试窗口中,字符串0输入为1[space][tab][enter],字符串1输入123。输出结果如下所示:

请输入字符串0:1 
请输入字符串1:123
您输入的字符串为:1123

说明,空格、tab和回车键并没有输入进去。

2.2scanf设置输入字符串长度

在使用scanf函数进行字符串输入时,可以设置最大输入长度,来避免出现字符串溢出报错。语法如下所示:

scanf("%7s",string)//其中string为对应字符串数组名。

%7s代表最大可输入7个字符所组成的字符串,如果输入的字符串长度大于7时,从第八个字符开始转为下一个scanf的输入。测试程序如下:

#include<stdio.h>

void main(void)
{
    char string0[8],string1[8];
    printf("请输入字符串0:");
    scanf("%8s",string0);
    printf("请输入字符串1:");
    scanf("%8s",string1);
    printf("\n您输入的字符串0为:%s\n您输入的字符串1为:%s",string0,string1);
}

在调试窗口中输入字符串0为123456789,按回车键结束后,程序直接打印出了结果(没有要求输入字符串1),且将9视为字符串1的唯一一个元素,程序运行结果如下:

请输入字符串0:123456789
请输入字符串1:
您输入的字符串0为:12345678
您输入的字符串1为:9

且%8s中限制的字符串长度可以和预定义的string0长度相等,显然更小也是可以的。

本文含有隐藏内容,请 开通VIP 后查看