十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
//程序功能:编写一个函数delchar(s,c),该函数将字符串s中出现的所有c字符删除。
创新互联是一家企业级云计算解决方案提供商,超15年IDC数据中心运营经验。主营GPU显卡服务器,站群服务器,成都电信服务器托管,海外高防服务器,大带宽服务器,动态拨号VPS,海外云手机,海外云服务器,海外服务器租用托管等。
// 在主程序中输入一个字符c和一个字符串s,调用delchar(s,c)函数删除字符串s中
// 所有的c字符,然后输出删除后的字符串。
//例 如:输入字符a和字符串li wang zha jin xiao,输出:li wng zh jin xio。
//提 示:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include stdio.h
#include string.h
void main( )
{
char c, str[80];
void delchar(char *p,char c);
printf("Input a char: ");
scanf("%c",c); //读入一个字符
printf("Input a strings: ");
scanf("%s",str);
//请在两条星线间填入代码, 调用delchar函数删除字符串str中所有c字符
/***************************************************************/
delchar(str,c);
/***************************************************************/
printf("The result is: %s \n", str);
}
void delchar(char *p, char c)
{
int i, k;
char str[80], *q;
q=str;
//请在两条星线间填入代码, 删除指针p指向的字符串中所有的c字符
//要求:利用指针方法来处理。
/**************************************************************/
i=0;k=0;
while(*(p+i)!='\0'){
if(*(p+i)!=c){
*(q+k)=*(p+i);
k++;
}
i++;
}
*(q+k)='\0';
strcpy(p,q);
/**************************************************************/
}
运行结果
#include
stdio.h
#include
stdlib.h
void
DeleteString(char*
array,char*result,int
begin,int
len)//begin
开始删除的位置,len,删除的长度。
{
int
i=0,j=0;
while(array[i]!='\0')
{
if(i(begin-1)||i=(begin+len-1))
result[j++]=array[i++];
else
i++;
}
result[j]='\0';
}
int
main(void)
{
char
store[100];
char
result[100];
printf("please
input
string!\n");
scanf("%s",store);//scanf以空格来区分字符的结尾。
DeleteString(store,result,10,5);
printf("%s\n",result);
return
0;
}
算法很多,告诉你一种比较好想的算法!自己编写,练习一下才有收获!
定义一个数组char a[10],输入一个字符串给它。再定义一个数组char b[10],把数组a中不是字符d和D的字符赋给数组b即可。很简单的!
//@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@@@
代码如下(已经编译运行过!)如下:
#include "stdio.h"
void main()
{
char a[10],b[10];
int i=0,j=0;
printf("输入字符串赋给数组a[10] :");
scanf("%s",a);
//把数组A一个个赋给数组B,判断一下,排除字符d和D,字符d和D的ASCII码值分别是100和68
for (i=0; i10; i++)
{
if (100 != a[i] 68 != a[i] ) //排除d和D字符
{
b[j] = a[i]; //把不是d和D的字符赋给数组b
j++;
}
}
printf("删除d和D字符后的字符串为 :%s\n",b);
}
//@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@
else
if((*t)-lchild==NULL)
(*t)=(*t)-rchild;
else
if((*t)-rchild==NULL)
(*t)=(*t)-lchild;
你确定你这个没有写错???左右孩子节点,都为空了你怎么还进入想进入进去?【估计你是这样想的】。。。但是安装你这个代码,只要左(右)孩子节点为空,你就直接把这个节点该删了,能不出错?【把一个空的孩子节点指向该节点】