例2 請(qǐng)編寫一個(gè)函數(shù)int find(char s[],char t[]),該函數(shù)在字符串s中查找字符串t,如果找到,則返回字符串t在字符串s中的位置(整數(shù)值):否則返回-1。注意:用數(shù)組方式及兩重循環(huán)來實(shí)現(xiàn)該函數(shù)。
注意:部分源程序已存在文件PROC2.cpp中。
請(qǐng)勿修改主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)find的花括號(hào)中填寫若干語句。
文件PROC2.cpp的內(nèi)容如下:
#include
int find(char s[],char t[] );
const int MAXLINE=256;
int main()
{
char source[MAXLINE],target[MAXLINE];
cout< <″please input a string for searching:\n″;
cin.getline(source,[MAXLINE]);
cout< <″please input a string you want to find:\n″;
cin.getline(target,MAXLINE);
int intpos=find(source,target);
if(intpos>=0)
cout< <″Finding it,The target string is at index ″
< <&NBSP;
else
cout< <″Not finding it \n″;
return 0;
}
int find(char s[],char t[])
{
}
分析: 本題是一道簡單應(yīng)用題。
函數(shù)int find(char s[],char t[])的功能是在字符串s中查找字符串t,如果找到,則返回字符串t在字符串s中的位置(整數(shù)值);否則返回-1。而且用數(shù)組方式及兩重循環(huán)來實(shí)現(xiàn)該函數(shù)。
答案:
int find(char s[],char t[])
{
int i=0,j=0;
for( i=0;s[i]!=′\0′;i+ +)
{
if(t[0]= =s[i])
{
while(t[j]!=′\0′&&s[i+j]!=′\0′)
{
j+ +;
if(t[j]!=s[i+j])
break;
}
}
if(t[j]= =′\0′)
return i;
}
return -1;
}
相關(guān)推薦:2010年計(jì)算機(jī)等級(jí)考試二級(jí)VB補(bǔ)充資料匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |