C语言中如何把字符串保存在数组中
发布网友
发布时间:2022-04-30 02:33
我来回答
共2个回答
热心网友
时间:2023-10-07 06:55
你这个毫无规律啊!!!
a[0]的56是16进制的,你的字符串是“56”;
a[2]的45的10进制的,你的字符串中也是“45”,规律都不同。
做不到!!!
如果是按照16进制,所有数都的按照16进制来,如果是10进制的话,一样的。
例如10进制,使用你上面的数据:
a[0]
=
5*16+6
=
86;
a[1]
=
8*16+7
=
...,
a[2]
=
45;
字符串应该是"86...45..."
希望能解决您的问题。
热心网友
时间:2023-10-07 06:56
/*
C语言中怎么把字符数组里的数据存放到字符串数组中
*/
#include
#include
void
main()
{
char
a[
100
],
*p,
*q;
int
i,
j,
n
=
0;
char
*b[
50
];//字符指针数组
printf("Please
input
a
sentence:\n");
gets(
a
);
p
=
a;
while(
*p
!=
'\0'
)
{
if(
*p
==
'
')
{//跳过空格
p++;
continue;
}
else
{
i
=
0;
while(
*(
p
+
i
)
!=
'
'
&&
*(
p
+
i
)
!=
'\0'
)
i++;
q
=
new
char[
i
+
1
];//创建一个新的字符数组,存储单词
for(
j
=
0;
j
<
i;
j++
)
q[
j
]
=
p[
j
];
q[
i
]
=
'\0';//记得放上结束符
b[
n++
]
=
q;//用字符数组中的元素指向新创建的字符数组
p
+=
i;
}
}
//以下换行输出,验证是否正确
for(
i
=
0;
i
<
n;
i++
)
printf(
"%s\n",
b[
i
]
);
for(
i
=
0;
i
<
n;
i++
)
delete
[]b[i];//释放各个字符数组
}
//测试:输入
//
sdkjf
skdj
d
//
输出
//
sdkjf
//
skdj
//
d
P.S:
或者输入一个完整的英文,如
"
I
am
a
genius!"
也可。程序会自动忽略空格。:-)
用C的malloc和free写起来较长,喜欢用C++中的new和delete