#include<iostream>
#include<algorithm>
#include<cstring>
#include<math.h>
using namespace std;
int main(){
char a[10];
char b[1010][10];
int n;
int k=0;
for(int i=0;i<9;i++){
scanf("%c",&a[i]);
}
scanf("%d",&n);
for(int i=0;i<n;i++){
for(int j=0;j<9;j++){
scanf("%c",&b[i][j]);
}
}
for(int i=0;i<n;i++){
for(int j=0;j<9;j++){
printf("%c",b[i][j]);
}
}
for(int i=0;i<n;i++){
printf("数组:\n%s",b[i]);
}
return 0;
}
测试数据:
A**1MP19*
4
A001MP199
E885EE098
A111MP199
KT7351TTB
结果:
A001MP199
E885EE098
A111MP199
KT735数组:
A001MP19数组:
9
E885EE0数组:
98
A111MP数组:
199
KT735
原因:
%c含有回车符
百度答案为:
%s 是从输入流中 读取一个 字符串,输入流中 字符串 以空白(空格,tab, 回车换行) 为分隔, 所以 读得的字符串 不含 回车。%c 从输入流中 读取一个 字符, 所以可以读到 '\n' . %c 读入的是一个 字符的 ASCII 值。
解决办法:
用cin
cin遇到回车与空格结束读取,例如:
string str;
cin >> str;
cout << str;
输入:abcdefg hijk
输出结果将会是:abcdefg
for(int i=0;i<n;i++){
for(int j=0;j<9;j++){
cin>>b[i][j];
}
}
c++字符数组后面不加‘\0’可以,但又说遇到‘\0’结束,但没有‘\0’那怎么结束?这里有点不懂:
加\0是用于字符串结尾标识,而char str[5]={‘c’,‘h’,‘i’,‘n’,‘a’}是一个字符数组,不是字符串。所以不用\0。要区别字符串和字符数组
char str_[ ]={"china"}会自动加\0。sizeof(str_)==6
-------------------------------------end--------------------------------------------------------------------