注册 登录
编程论坛 C++教室

[求助]字串符的应用

小飞丫 发布于 2007-11-09 14:56, 1278 次点击
编写一个程序,用于接受两个字符串,判断第一个字符串中是否包含第二个字符串,如果包含说明第二个字符串在第一个字符串中的位置(即,第二个字符串第一个字符在第一个字符串中出现的位置)
#include<stdio.h>
#include<string.h>
void main()
{
char a[30],b[50];
printf("第一行字符是");
gets(a);
printf("第二行字符是");
gets(b);
if(a>b)
printf("\na包含b\n");
} 后面怎么遍 出现的位置 用指针做
会的能不能告诉我啊
15 回复
#2
小飞丫2007-11-09 14:56
会的教教我怎么做啊```
谢谢了````
#3
小飞丫2007-11-09 15:29
怎么没人进来呢?
帮帮我啊```
#4
nearforest2007-11-09 17:49
参考一下CString的Find函数.......
#5
小飞丫2007-11-09 17:55
。。。。
没那书啊```帮我一下啦
#6
孤魂居士2007-11-09 18:18
以下是引用nearforest在2007-11-9 17:49:34的发言:
参考一下CString的Find函数.......

今天我们刚刚学

这个程序不是你要的哦 是我们老师上课讲的 find函数综合应用 你可以参考

#include<iostream.h>
#include<string.h>
using namespace std;
string str="mississ ippi";
void main()
{
int index;
index=str.find_first_of('s',0); //掉了个分号
cout<<index<<endl;
index=str.find_first_of('s',4) //找字符s位置,从第4个位置开始找起
cout<<index<<endl;
index=0;
while(index=str.find_first_of('i',index)!=-1)
{
cout<<"index:"<<index<<" "<<endl;index++;
}
index=str.find_last_of(' ');
string first name,last name;
first name=str.substr(0,index);
last name=str.substr(index=+1,-1)
index=str.find("miss");
cout<<index<<endl;
index=str.find("ippi");
index=str.find("ippi",8);
str="endfile";
string s="string object type";
str+="mark";
str.insert(3,-of-);
str.erase(7,7);
str.erase(3,4);
cout<<s<<endl;
}

#7
小飞丫2007-11-09 18:21
晕```
大哥
你那我看不懂啊
怎么参考啊```
#8
孤魂居士2007-11-09 18:25
晕 好多小错误 不该发上来的 应该修改完了发上来的 这个代码是我同学写的 要我帮助改 还没有改完呢``


#include<iostream.h>
#include<string.h>
// using namespace std;
string str="mississ ippi";
void main()
{
int index;
index=str.find_first_of('s',0); //掉了个分号
cout<<index<<endl;
index=str.find_first_of('s',4) //找字符s位置,从第4个位置开始找起
cout<<index<<endl;
index=0;
while(index=str.find_first_of('i',index)!=-1)
{
cout<<"index:"<<index<<" "<<endl;index++;
}
index=str.find_last_of(' ');
string first name,last name;
first name=str.substr(0,index);
last name=str.substr(index=+1,-1)
index=str.find("miss");
cout<<index<<endl;
index=str.find("ippi");
index=str.find("ippi",8);
str="endfile";
string s="string object type";
str+="mark";
str.insert(3,-of-);
str.erase(7,7);
str.erase(3,4);
cout<<s<<endl;
}
#9
小飞丫2007-11-09 18:26
就没我想要的啊
#10
yijing212007-11-09 18:30
用C++的string类find函数可以一步就做到~~~
#11
yijing212007-11-09 18:32
#include<iostream>
#include<string>
using namespace std;
int main()
{
string a,b;
cin>>a>>b;
int temp;
temp=a.find(b,0);
if(-1==temp)
cout<<"can't find!"<<endl;
else
cout<<temp<<endl;
return 0;
}
#12
孤魂居士2007-11-09 18:42
以下是引用yijing21在2007-11-9 18:30:37的发言:
用C++的string类find函数可以一步就做到~~~

应该可以 盼望代码

#13
frank2002007-11-09 19:06

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

//在字符串 srcstr中查找子串 substr, 若查到返回 substr
//的首字母在 srcstr中的位置, 否则返回 -1
int search(char *srcstr, char *substr);

int main()
{
char srcstr[80];
char substr[20];
int pos;

printf("请输入一个字符串:\n");
gets(srcstr);
printf("输入要查的字符串:\n");
gets(substr);

pos=search(srcstr, substr);
printf("pos=%d\n",pos);
getchar();
return 0;
}

int search(char *srcstr, char *substr)
{
int i, j, flag=0;
for(i=0; i<strlen(srcstr)-strlen(substr); i++)
{
flag=1;
for(j=0; j<strlen(substr); j++)
if(substr[j]!=srcstr[i+j])
{
flag=0;
break;
}
if(flag==1)
return i;
}
return -1;
}

#14
frank2002007-11-09 19:08

上面的程序已经运行过了

#15
小飞丫2007-11-09 20:59
谢谢了 大哥```
#16
小飞丫2007-11-09 21:56
。。。。
1