2.编写函数,实现在字符串str1中寻找字符ch最后出现的位置,如果没有找到ch,则返回-1。在main函数中输入

#include<stdio.h>voidmain(){intfine(chara[],charc);charb[50],d;intk;printf("Enterstr1... #include<stdio.h>
void main()
{int fine(char a[],char c);
char b[50],d;
int k;
printf("Enter str1:");
gets(b);
printf("\n");
printf("Enter ch:");
scanf("%c",&d);
printf("\n");
k=fine(b,d);
printf("ch position :%d",k);
}
int fine(char a[],char c)
{ int i,m=-1;
for(i=0;a[i]!='\0';i++)
if(a[i]==c) m=i+1;
return (m);
}
展开
 我来答
nm62xemfo
2011-04-20 · TA获得超过1698个赞
知道小有建树答主
回答量:1338
采纳率:100%
帮助的人:848万
展开全部
****
public string insert(string s1,string s2,char ch)
{
string[] tempstr = s1.Split(ch.ToString()); ///将s1按照搜索到的字符进行分割,返回字符串数组,并丢失分割依据,即字符ch
string news1 = "";
for(int i=0;i<tempstr.Length;i++)///组合新字符串;在第一个串和第二个串分割的地方添加s2
{news1+=tempstr[1];
news1+=ch.ToString();
if(0==i) news1+=s2;
}
return news1;
}

c++**********************************
char* insert(char* s1,char*s2,char ch)
{
int i,j.k;
int lengths1,lengs2;///统计s1和s2的长度
for(i=0;s1[i]!='/0';i++)////定位分割点,/0表示字符串结束的标志.i表示分割位置

for(lengths1=0;s1[lengths1]!='/0';lengths1++)
;
for(lengths2=0;s2[lengths2]!='/0';lengths2++)
;
char* newstr = new char[lengths1+lengths2]
for(j=0;j<=i;j++)///安置s1前一部分

for(k=0;k<lengths2;k++)///安置s2

for(i=0;i<lengths1+lengths2;i++)///安置s1后一部分

return newstr;
}

理论上你需要加上判断,如果没能找到ch,那么如何如何。
匿名用户
2011-04-20
展开全部
****
public string insert(string s1,string s2,char ch)
{
string[] tempstr = s1.Split(ch.ToString()); ///将s1按照搜索到的字符进行分割,返回字符串数组,并丢失分割依据,即字符ch
string news1 = "";
for(int i=0;i<tempstr.Length;i++)///组合新字符串;在第一个串和第二个串分割的地方添加s2
{news1+=tempstr[1];
news1+=ch.ToString();
if(0==i) news1+=s2;
}
return news1;
}

c++**********************************
char* insert(char* s1,char*s2,char ch)
{
int i,j.k;
int lengths1,lengs2;///统计s1和s2的长度
for(i=0;s1[i]!='/0';i++)////定位分割点,/0表示字符串结束的标志.i表示分割位置

for(lengths1=0;s1[lengths1]!='/0';lengths1++)
;
for(lengths2=0;s2[lengths2]!='/0';lengths2++)
;
char* newstr = new char[lengths1+lengths2]
for(j=0;j<=i;j++)///安置s1前一部分

for(k=0;k<lengths2;k++)///安置s2

for(i=0;i<lengths1+lengths2;i++)///安置s1后一部分

return newstr;
}

理论上你需要加上判断,如果没能找到ch,那么如何如何。
另外,虚机团上产品团购,超级便宜
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友89d4e5a
2011-04-19 · 超过27用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:56.7万
展开全部
int fine(char a[],char c)
{ int i,m=-1;
for(i=0;a[i]!='\0';i++)
{
if(a[i]==c)
m=i+1;break;
}
return (m);
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
L_o_o_n_i_e
2011-04-19 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:6045万
展开全部
你的程序正确。没有问题啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式