关于洛谷写题,二维字符数组的输入按行输入

在C语言中使用scanf函数读取字符时,会包含换行符。为避免此问题,可以对字符变量ch单独处理。对于字符串输入,%s会将换行视为字符串的一部分,并在末尾添加。因此,在初始化数组时,需考虑占据的空间,如char[a][b+1]。如果预先定义全局数组,一般定义为chararr[103][103],确保能容纳最长行加1的字符。
摘要由CSDN通过智能技术生成

输入:

        scanf("%c",&ch);录入字符的时候,会将换行字符当作一个字符,所以录入的时候需要

    char ch;
    for(int i=0; i<a; i++) {
		scanf("%s",arr[i]);
	}

需要按行进行录入,由于将其当作是字符串输入,所以结尾会有\0占用一个元素空间,所以进行数组初始化的时候根据情况看是否需要加1:

1.使用变量定义:

        按以下方式

char [a][b+1];

2.提前定义全局数组:

只要大于本行字符数加1即可,一般是定义比最大多几个,所以基本无需在意

char arr[103][103];

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值