C语言指针问题,高手请指点!!

从键盘输入一个字符串,和一个字符,使用指针,将字符串中,这个字符出现的地方全部删除。比如:输入的串为AABBCCDDEE,输入的字符是CC输出的结果应该是:AABBDDE... 从键盘输入一个字符串,和一个字符,使用指针,将字符串中,这个字符出现的地方全部删除。比如:

输入的串为 AABBCCDDEE ,输入的字符是CC

输出的结果应该是:AABBDDEE

具体代码是什么样的?
展开
 我来答
moxsone
2011-04-26 · TA获得超过3331个赞
知道大有可为答主
回答量:2796
采纳率:50%
帮助的人:1476万
展开全部
/*
从键盘输入一个字符串,和一个字符,使用指针,将字符串中,这个字符出现的地方全部删除。比如:
输入的串为 AABBCCDDEE ,输入的字符是CC
输出的结果应该是:AABBDDEE
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char OldStr[1024];
char DelStr[1024];

memset(OldStr,0x0,sizeof(OldStr));
printf("输入原始字符串 = ");
scanf("%s",OldStr);

memset(DelStr,0x0,sizeof(DelStr));
printf("输入要删除的字符串 = ");
scanf("%s",DelStr);

printf("要从字符串[%s]中删除[%s]...\n",OldStr,DelStr);

//先找到要删除字符串在原始字符串中的位置
char *pWork = OldStr;
bool HadFound = false;
while ( pWork < OldStr + strlen(OldStr) )
{
if ( strncmp(pWork,DelStr,strlen(DelStr)) == 0 )
{
HadFound = true;
break;
}
pWork++;
}

//原始字符串中存在要删除的字符串,位置为pWork
if ( HadFound )
{
memmove(pWork,pWork+strlen(DelStr),strlen(pWork)-strlen(DelStr)+1);
}

printf("删除后的结果为[%s]\n",OldStr);

fflush(stdin);
getchar();
return 0;
}
囲孓
2011-04-26
知道答主
回答量:26
采纳率:0%
帮助的人:12.1万
展开全部
使用if-else判断啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
俎静皖9f
2011-04-26 · TA获得超过721个赞
知道小有建树答主
回答量:68
采纳率:100%
帮助的人:102万
展开全部
#include<stdio.h>
#define MAX 100

我们不用指针,用数组下标操作:
int main()
{
char str[MAX], ch;
int i, k;
scanf("%s", str); // 获得字符串str
while((ch = getchar()) == ' ' || ch == '\n' || ch == '\t'); // 跳过空白字符,获得所要的字符ch
for(k = i = 0; str[i]; ++i){ // 该循环删除str中ch字符
if(str[i] != ch) // 你可以画个图看看什么意思、
str[k++] = str[i];
}
str[k] = '\0'; // 在str尾添加 '\0'
printf("%s\n",str); // 输出
return 0;
}

好吧,我们用指针实现它,和上面的算法是一样的,表示不一样而已:
int main()
{
char str[MAX], ch, *p, *q;
scanf("%s", str);
while((ch = getchar()) == ' ' || ch == '\n' || ch == '\t');
for(p = q = str; *p; ++p){
if(*p != ch)
*q++ = *p;
}
*q = '\0';
printf("%s\n",str);
return 0;
}
数组下标操作和,指针操作,可以互相转化,你琢磨一下吧、有疑问,再问、~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b350adc1b
2011-05-03
知道答主
回答量:7
采纳率:0%
帮助的人:0
展开全部
/* 从键盘输入一个字符串,和一个字符,使用指针,将字符串中,这个字符出现的地方全部删除。比如:

输入的串为 AABBCCDDEE ,输入的字符是C

输出的结果应该是:AABBDDEE */

#include <stdio.h>
#include <string.h>

main()
{
void delfunction(char *str,char ch,int n);
char old_str[100],del_char;
int i,number;

printf("输入原始字符串:\n");
scanf("%s",old_str);
getchar();

printf("输入要删除的字符:\n");
del_char=getchar();

number=strlen(old_str);

delfunction(old_str,del_char,number);

printf("输出删除后的字符串:\n");
for(i=0;i<number;i++)
{
if(old_str[i]!=' ')
printf("%c",old_str[i]);
}
printf("\n");

}

void delfunction(char *str,char ch,int n)
{
int j;

for(j=0; j<n;j++)
{
if(*str==ch)
*str=' ';
str++;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-05-04
展开全部
#include <stdio.h>
int main()
{
int value[6],*p,high=0,low=0,average=0,i;

p = value;
for(i=0; i<6; i++)
{
scanf("%d",p);

if(i==0)
high=low=*p;
else
{
if(*p > high)
high = *p;
if(*p < low)
low = *p ;
}
average+=*p;
p++;
}

average/=6;
printf("high:%d low:%d average:%d\n",high,low,average);

}
另外,站长团上有产品团购,便宜有保证
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式