如何将一段不确定长度的句子拆分成单个字符输入数组中

可以使用指针和动态内存分配,本人大一,请使用比较简单的语句实现不能使用puts,gets,strcat,strcpy等语句,并且遇空格不会停止输入,例如我定义个不确定大小... 可以使用指针和动态内存分配,本人大一,请使用比较简单的语句实现
不能使用puts,gets ,strcat,strcpy等语句 ,并且遇空格不会停止输入,例如我定义个不确定大小的数组s[],输入the 日result of 3 and 2 is not 8,它会自动变成s[]={'t','h',......'8'}这样的,写详细点
展开
 我来答
L_o_o_n_i_e
2009-12-11 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:6036万
展开全部
开一个大数组就可以了。
#include <stdio.h>
#include <stdlib.h>
void main()
{
char s[1024]; // 大数组
int i,n;
n=0;
scanf("%c",&s[n]); // 读一个字符的方法

while (s[n] !='\n') //如果没有读到换行符,就一个一个读下去
{
n=n+1;
scanf("%c",&s[n]);
}
for (i=0;i<n;i++) printf("'%c'",s[i]); // 打出结果
}
-----------------------
如果存放时,你要数组里不存放空白,则把语句n=n+1; 改成:
if ( s[n] != ' ') n=n+1;
伍浩淼Sk
2009-12-09 · TA获得超过949个赞
知道答主
回答量:117
采纳率:0%
帮助的人:0
展开全部
用一个循环一个字符一个字符的复制过来,直到遇到'\0'为止.
C语言里面不允许定义不确定大小的数组.你定义一个足够大的数组就行了
#include <stdio.h>
main()
{
int i=0;
int c;
char a[100],b[100];
printf("input your string:\n");
while ((c=getchar())!='\n')
{
a[i++]=c;
}
a[i]='\0';

for(i=0;a[i]!='\0';i++)
{
b[i]=a[i];
}
b[i]='\0';
printf("string a:\n%s\n",a);
printf("string b:\n%s\n",b);
}

修改了一下,遇到空格不会停止了.
C++可以动态定义数组,如果你学的是C++,那我帮不到你了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
云上他
2009-12-10 · TA获得超过3551个赞
知道小有建树答主
回答量:1499
采纳率:0%
帮助的人:857万
展开全部
/* 特殊的问题要特殊的方法解决 */
#include "stdio.h"
#include"malloc.h"
int main()
{
int i;
char *s;
scanf("%d",&i);/* 输入一数确定数组大小 */
s=(char *)malloc(sizeof(char)*i);
getchar(); /* 吞掉上一个scanf的回车*/
scanf("%[^\n]",s); /* 接收字符直到回车 */
printf("%s\n",s); getch();
i=0;
while(s[i]) /* 验证各元素的值 */
printf("%c",s[i++]);
getch();
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夫梦毕安阳
2020-05-14 · TA获得超过1263个赞
知道小有建树答主
回答量:3645
采纳率:100%
帮助的人:25.5万
展开全部
开一个大数组就可以了。
#include
<stdio.h>
#include
<stdlib.h>
void
main()
{
char
s[1024];
//
大数组
int
i,n;
n=0;
scanf("%c",&s[n]);
//
读一个
字符
的方法
while
(s[n]
!='\n')
//如果没有读到
换行符
,就一个一个读下去
{
n=n+1;
scanf("%c",&s[n]);
}
for
(i=0;i<n;i++)
printf("'%c'",s[i]);
//
打出结果
}
-----------------------
如果存放时,你要数组里不存放空白,则把
语句
n=n+1;
改成:
if
(
s[n]
!=
'
')
n=n+1;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式