C语言:用指针将输入的字符存入数组a[],并将该数组的所有字符复制到数组b[]中,同时去掉所有的空格

如题所述

#include<stdio.h>
void main()
{
char a[50],b[50];
char *pa=a,*pb=b;
printf("请输入串:\n");
gets(a);
while(*pa)
{
if(*pa!=' ')
*pb++=*pa;//将非空格符存到数组b
pa++;
}
*pb='\0';//加一个串的结束符
printf("删除空格后串为:\n");
puts(b);//输出删除空格后的数组
}
//程序我已经调试过了,你试试!不懂的可追问哦!
//代码均为个人原创,仅供学习交流!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-10
/*
实现功能:
用指针将输入的字符存入数组a
去掉数组a的所有的空格并将该数组的所有字符复制到数组b[]中
*/
#include"stdio.h"
#include"string.h"
main()
{
int i,j;
/*为了防止数组输出时出现乱码,使用数组前要置空*/
char a[100]="\0",b[100]="\0",*p=NULL;
printf("请输入字符串:\n");
p=a; /*指针p指向a数组名*/
/*输入回车键时退出输入*/
*p=getchar();
do
{
p++;
*p=getchar(); /*利用指针p将输入的字符串传给a*/
}while(*p!='\n');
strcpy(b,a); /*利用字符串处理函数strcpy()将a的元素赋值给b*/
for(i=0;b[i]!='\n';i++)
{
/*分别对每个字符判断是否为空格,是的话元素上移删除空格*/
if(b[i]==' ')
{
/*专门定义变量j来实现元素上移*/
for(j=i;b[j]!='\0';j++)
{
b[j]=b[j+1];
}
}
}
puts(b); /*输出处理后的数组b*/
getch();
}
/*
反思:
对于循环的使用,先想出执行的顺序再判断选择使用while语句还是for语句
还是do_while语句。
*/
第2个回答  2012-04-09
我来帮你
#include <stdio.h>
#include <string.h>
#define max 100
void main()
{
char *p,*q,a[max],b[max];
printf("Enter a:\n");
gets(a);
printf("Enter b:\n");
gets(b);
p=a;
q=b+strlen(b);
for(int i=0;i<strlen(a);i++)
{
*q=*p;
p++;
q++;
}
*q='\0';
q=b;
for(int i=0;i<strlen(b);i++)
{
if(b[i]==' ')
{ for(int j=i;j<strlen(b);j++)
{
b[j]=b[j+1];
}
i--;
}
}

puts(a);
puts(b);
}
第3个回答  2012-04-09
等我一下。本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网