C语言中如何把字符串保存在数组中
2个回答
展开全部
/*
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询