假如输入8行8列的字符串,我想将其赋给数组,但是,总是会出现?,数组为空的情况。这是因为每行字符串的末尾会有一个“\0”吗?
我应该怎么避免将“\0”赋给二维数组?
![](https://profile-avatar.csdnimg.cn/1729322bf93e4f31b2075d34607e2031_2301_76936713.jpg!4)
获取字符串怎么跳过空格?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注
【以下回答由 GPT 生成】
#include <iostream> #include <string> int main() { std::string input = "abcdefgh 12345678\n" "ijklmnop 23456789\n" "qrstuvwx 34567890\n" "yzabcdefg 45678901\n" "hijklmno 56789012\n" "pqrstuvw 67890123\n" "xyzabcd 78901234\n" "efghijk 89012345"; const int rows = 8; const int cols = 8; char array[rows][cols]; int index = 0; for (int i = 0; i < rows; ++i) { for (int j = 0; j < cols; ++j) { while (input[index] == ' ' || input[index] == '\n' || input[index] == '\r') { ++index; // skip spaces and newlines } array[i][j] = input[index]; index++; } } // Print the 2D array for (int i = 0; i < rows; ++i) { for (int j = 0; j < cols; ++j) { std::cout << array[i][j] << " "; } std::cout << std::endl; } return 0; }
这段代码可以解决你的问题。首先,我们定义了一个8行8列的字符串,并且创建了一个8行8列的二维数组。然后使用两层循环遍历字符串,并且使用一个索引变量来跳过空格和换行符。在每个非空格非换行符的字符处,将其赋给二维数组。最后,再遍历二维数组并打印每个元素,可以看到正确地避免了空格和末尾的"\0"。
【相关推荐】
- 你可以看下这个问题的回答https://ask.csdn.net/questions/7585041
- 这篇博客也不错, 你可以看下移动数组中的0至数组末尾
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报
悬赏问题
- ¥15 Stata链式中介效应代码修改
- ¥15 latex投稿显示click download
- ¥15 请问读取环境变量文件失败是什么原因?
- ¥15 在若依框架下实现人脸识别
- ¥15 网络科学导论,网络控制
- ¥100 安卓tv程序连接SQLSERVER2008问题
- ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错