永发信息网

几道C++题目,帮忙做下

答案:1  悬赏:80  手机版
解决时间 2021-07-17 15:05

我们刚刚学完数组,指针和函数···麻烦用我们学过的知识来编一下

1.编写一个函数delchar(char*s1,char s2),从字符串s1中删去与字符相同的字符。用main()测试该函数

2.编写一个函数function(int n,int k).该函数有参数n和k。函数的返回值为数n从右边开始数的第k个数字的值。例如n=12345和k=2时,函数返回3.若k>n的位数或k<1时,函数返回0.

3.编写函数int find(char a[ ],char ch),从一个字符串中找出某个字符第一次出现的位置。例如字符串"computer language"中字母"u"第一次出现的位置为5.若没有该字符,返回0,否则函数返回出现的位置。

谢谢了!!!

最佳答案

第一题:


#include <iostream>
using namespace std;


void delchar(char*s1,char s2)
{
char *p;
while(*s1)
{
if(*s1==s2) //当指针指向的字符等于要删除的字符时;
{
p=s1;
while(*(p+1)) //将该字符后面的字符依次往前移一位.就等于覆盖掉该字符.
{
*p=*(p+1);
p++;
}
*p='\0'; //最后一个字符前移后,将其原本的位置置为字符串结束符.
}
s1++;
}
}


int main()
{//测试.从字符串"abcde"中删除字符c.
char str[10]="abcde";
char s='c';
delchar(str,s);
cout<<str<<endl; //输出结果.
return 0;
}



第二题:


感觉k=2时返回3有问题.前面k<1的时候就返回0了. 所以k得从1开始.


而12345第一位是1,第二位是2.第三位是3.... 所以返回的应该是2!



#include <iostream>
using namespace std;


int function(int n,int k)
{
int digit=0,i=0,j=n;
char str[10];
while(j)
{
str[i++]=j%10+'0';
j/=10;
digit++;
}


if(k>digit||k<1) return 0;


i=str[digit-k]-'0';
return i;
}


int main()
{
int i;
i=function(12345,2);
cout<<i<<endl;
return 0;
}



第三题:


#include <iostream>
using namespace std;


int find(char a[],char ch)
{
char *p=a;
while(*p)
{
if(*p==ch)
{
return p-a+1; //+1是因为字符串下标从0开始.
}
p++;
}
return 0;
}


int main()
{
char str[]="computer language";
int i;
i=find(str,'u');
cout<<i<<endl;
}

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
飞利浦液晶电视42PFL3609接电脑可以达到1080P
英雄岛魔龙和什么职业搭配?
DNF中的柚珍罐怎么开啊?
睡的梦可以当真?它会变真吗?
如何更改QQ2009登陆框标题
风湿脚痛怎么办…?
手机传歌过程中因为内存空间不足,存储卡里的
水瓶座的性格很古怪么?
求高手帮忙爱国者4gb 月光宝盒MP5播放器PM593
参军可不可以带香烟
有什么好看的QQ网名,带上“雯”字
为什么冬天手脚冰冷?
小明去踢一只狗,为什么狗没叫?
如果你登男友QQ发现他和一个认识的女人的对话
怎么申请DNF密保卡
推荐资讯
怎样拒绝别人在QQ上描述对你的印象?
三国战记正宗PLUS斩首分怎么能加得多..
帮忙娶下名字
帮我找下周杰伦 画沙的 空间音乐地址 要那个
它是一种免费的还是一种付费的卡用花钱买吗?
CF站队问题。网页上退掉了。但,游戏上仍然显
衣服怎么搭配穿起来好看?
英语作文 我的大学生活 带中文翻译的 ~
最难承受的是生命还是感情?
dnf阿修罗波动刻印消耗的MP怎么随时间增加而
园区网络安全设计
着急!怎样撤回几天发送并且已经从已发送列表
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?