求一简单C++程序。各位大侠帮帮忙。。。。给力啊。。。。。

输入一个长字符串,在输入一个小字符串,在长字符串中找到小字符串,并说明在长字符串中的位置。
在线等啊,作业急交!!!!!!
只有这么多分了,今天太急,好的追加!!!!!!!急急急急!!!!!!!!!
还要统计小字符出现次数,谢谢啊。。急急急。。。。

调试过了,没有问题

#include<iostream.h>
#include<string.h>
void main()
{
int i,j,k1,k2,n;
char a[100],b[20];
cout<<"输入一个长字符串:\n" ;
cin>>a;
cout<<"输入一个短字符串:\n";
cin>>b;
k1=strlen(a);
k2=strlen(b);
for(i=0;i<=k1-k2;i++)
{
n=i;
for(j=0;j<k2;j++)
{

if(a[n]!=b[j])
break;
else
{
n++;
if(j==k2-1)
{
cout<<"在长字符串"<<i+1<<"个位置开始 "<<endl;
return;
}
}
}
}
cout<<"字符串不在长字符串中\n" ;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-21
#include <string>
int main()
{
string str1 = "aaaaabbbb";
string pattern = "ab";
string::size_type it;
if((it=str1.find(pattern)) != string::npos)
{
cout << "Pattern is begin at " << static_cast<int>(it) << endl;

}
else
cout << "no such sub-string(s)" << endl;
return 0;
}
第2个回答  2011-04-21
#include <string.h>
#include <stdio.h>
int main()
{
char max[256];
char min[256];
char *k;
int pos;
printf("请输入字符串:\n");
scanf("%s",max);
printf("请输入要查找的字符串:\n");
scanf("%s",min);
k=strstr(max,min);
pos=k-&max[0];
if(pos>=0&&pos<strlen(max)-strlen(min))
printf("字符串所在位置为:%d\n",pos);
else
printf("没有要查找的字符串\n");//字符串位置从0位置开始算起
}

C++程序,求解
include<string.h> define N 4\/*用户输入歌名的个数,现在为四首,可以自己改,你应该知道吧。呵呵*\/ using namespace std;class Csz\/\/定义一个类 { public:void input();void sort(char *p[],int n);void sort1(char *p[],int n);void YXdisplay();\/\/原序输出 void ZMdisplay();\/\/...

各位c++大侠,我是一个自学c++的菜鸟,很菜的问题,跪求指点啊
因为程序运行完了就会把控制台关闭,而你在程序中执行后,他会提示你”请按任意键继续……’,因为这句话的缘故让你能一直看到控制台,如果你想在debug里看久一点,那么可以在程序的末尾加上一个sleep,或者加入一个输入语句。

求C++程序
CandyBar* next; \/\/下一个节点 };int main(void){ int i =0; \/\/用来记录输入的糖果种数 CandyBar* head = new CandyBar; \/\/创建一个空的头节点 head->next = 0; \/\/头节点的下一个节点设为空 CandyBar* q = head; \/\/用另一个指针来复制头节点(因为不能直接对头节点操作,\/...

看一段简单的C++代码!
原因是cin内部有一个“状态标志”,如果把一个字符输入给一个int,cin的>>操作符重载函数会把这个“状态标志”设置成某个非零的值(说明有一个错误发生)。cin的>>函数在内部的实现是这样的:在最开始的时候,会判断这个“状态标志”是否是个正常值(这个正常值是0),如果发现这个状态标志不是个正常...

高手请进!c++编程急需!重金悬赏。。。请发邮箱708891089@qq.com...
{ int year;int month;int day;};int days(struct date day){ static int day_tab[2][13]= {{0,31,28,31,30,31,30,31,31,30,31,30,31,}, \/* 平均每月的天数 *\/ {0,31,29,31,30,31,30,31,31,30,31,30,31,},};int i,lp;lp=day.year%4==0&&day.year%100!=0||...

就各位大神用C++帮小弟补充完一个学生成绩管理系统小程序 (抱拳)
姓名,平时成绩及期末成绩 void CalcuScore(); \/\/计算当前学生的总评成绩 void PrintOut(); \/\/输出当前学生的完整信息 friend void SortScore(Student stu[],int n); \/\/根据总评成绩排除学生的名次};void Student::ReadData() { char buf[32]; cout << "number: "; cin >...

各位大侠帮忙看一下。初学C++。先通过下面程序把China输入后变成chin...
)? (d+32):d;e=((a>='A')&&(a <='Z'))? (e+32):e; cout<<a<<b<<c<<d<<e<<endl;return 0;}这是改后的,你的程序判断,后面的'Z'你形成了'z',小z,这样的话,把后面的小写字符也包括进去了。当然提醒一下:如果判断一个数是不是字符 必须要用:if ((a>='A')&...

...我编了以下程序,可老出错,想请各位大侠帮帮忙!先谢谢了!
(1)题目的意思是:"当输入:"后面的那句"How about you?"和"输入:"后的那句"OK"是由你从键盘中输入的,其它的都由程序自动输出 (2)你存在很多语法错误 比如C++中是分大小写的,可你的代码中大小写不分;类成员函数的定义格式也不对 建议你先看一下C++基础教材,先掌握语法,模仿教材上的设计 incl...

C++程序:给出年月日,计算该日是该年的第几天
days = days + 1;printf("是该年的第%d天.\\n", days);getch();} static int day_tab[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int sum_day(int month, int day){ int i;for(i=1; i<month; i++)day = day + day_tab[i];return day;} ...

各位大侠帮我我看下下面C++代码哪里是错误的,谢谢!
void main(){ HMODULE MKM;WNDCLASS windows;MKM=GetModuleHandle(0);windows.style=0;windows.lpfnWndProc=WndProc;} \/\/定义函数指针 long CALLBACK WndProc(HWND hWnd, \/\/ handle to window UINT Msg, \/\/ message WPARAM wParam, \/\/ first message parameter LPARAM lParam \/\/ seco...

相似回答