c语言怎么输入多行字符串

在C语言中,可以使用以下方法输入多行字符串:

1、使用fgets()函数读取整行字符串。

2、使用循环结构逐行读取字符串。

3、使用scanf()函数读取字符串,并在每行末尾添加换行符。

下面是详细的步骤和示例代码:

方法一:使用fgets()函数读取整行字符串

#include 
int main() {
    char str[100][100]; // 定义一个二维字符数组用于存储多行字符串
    int i;
    printf("请输入多行字符串(每行不超过99个字符):
");
    for (i = 0; i < 5; i++) { // 假设要输入5行字符串
        fgets(str[i], sizeof(str[i]), stdin); // 读取一行字符串并存储到str[i]中
    }
    // 打印输入的多行字符串
    for (i = 0; i < 5; i++) {
        printf("%s", str[i]);
    }
    return 0;
}

方法二:使用循环结构逐行读取字符串

#include 
#include 
int main() {
    char str[100][100]; // 定义一个二维字符数组用于存储多行字符串
    int i, j;
    char temp[100]; // 临时存储每一行的字符串
    printf("请输入多行字符串(每行不超过99个字符):
");
    for (i = 0; i < 5; i++) { // 假设要输入5行字符串
        j = 0;
        while (fgets(temp, sizeof(temp), stdin) != NULL && temp[j] != '
') { // 逐字符读取每一行字符串,直到遇到换行符为止
            str[i][j] = temp[j]; // 将读取的字符存储到str[i]中
            j++;
        }
        str[i][j] = ''; // 在每一行的末尾添加空字符,表示字符串结束
    }
    // 打印输入的多行字符串
    for (i = 0; i < 5; i++) {
        printf("%s", str[i]);
    }
    return 0;
}

方法三:使用scanf()函数读取字符串,并在每行末尾添加换行符

#include 
#include 
#include  // 包含isspace()函数,用于判断字符是否为空白字符(空格、制表符等)
int main() {
    char str[100][100]; // 定义一个二维字符数组用于存储多行字符串
    int i, j;
    char temp[100]; // 临时存储每一行的字符串
    int len; // 当前行的长度计数器
    int max_len = 99; // 每行的最大长度限制为99个字符(包括空字符)
    int is_new_line = 1; // 标记是否为新的一行开始的标志位,默认为1表示是新的一行开始,0表示不是新的一行开始(即当前行为上一行的延续)
    int c; // 临时变量,用于存储从标准输入读取的字符值
    printf("请输入多行字符串(每行不超过99个字符):
");
    for (i = 0; i < 5; i++) { // 假设要输入5行字符串,初始化为第1行开始读取
        j = 0; // 重置当前行的索引计数器为0,用于存储读取的字符到str[i]中的位置索引位置上
        len = 0; // 重置当前行的长度计数器为0,用于记录当前已经读取的字符数(不包括空字符)
        is_new_line = 1; // 重置标志位为1,表示当前行为新的一行开始读取(即用户按下回车键后)或继续读取上一行的延续部分(即用户未按下回车键)
        while ((c = getchar()) != EOF) { // 循环读取标准输入中的字符,直到遇到文件结束符EOF为止(通常由Ctrl+D触发)或用户按下回车键为止(即表示输入完成)

分享题目:c语言怎么输入多行字符串
转载来源:http://www.shufengxianlan.com/qtweb/news26/428026.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联