求助,不难但我不会的题目

yuetiantia 2003-10-19 10:11:50
刚学c,哪位高手能够帮我填空并且简单注释一下基本意思,万分感谢。

填空:使程序完整:
1.函数index()为查找字符串st的子串。若是,返回sub在st首次出现的下标,否则返回
-1。字符串sub和st非空。
如st为”abcdefghij”,sub为”def”,返回为3。

Index(char st[],char sub[])
{int i,j,k;
for (i=0;_________(1)_________;i++)
{ for(j=i,k=0;sub[k]!=’\0’&&st[j]==sub[k];______(2)_________);
if(________(3)___________) return(i);
}
return(-1);
}


2.一下程序调用invert函数按逆序重新放置array数组中元素的值。Array数组中的值在main函数中由用户输入。
#include <stdio.h>
#define N 20
main()
{ int array[N],I;
for(I=0;I<N;I++)
scanf(“%d”,array+_______(4)____________);
invert(__________(5)______,0,N-1);
for(I=0;I<N;I++)
printf(_____(6)________);
printf(“\n”);
}
invert(s,I,j)
int s*,I,j;
{ int t;
if(I<j){ t=*( s+i);
__________(7)_______________;
*(s+j)=t;
invert(s,_____(8)__________);
}
}











...全文
31 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
David2008 2003-10-19
  • 打赏
  • 举报
回复
Index(char st[],char sub[])
{int i,j,k;
for (i=0;st[i]!='\0';i++) //找到st[i]的长度,因为数组在不知道大小的情况下,没有指针,所以,只有用这样的方法判断。
{ for(j=i,k=0;sub[k]!=’\0’&&st[j]==sub[k];k++); //很简单
if(st[j]==sub[k]) return(i);//找到了,就返回i值,就是位置
}
return(-1);
}
point_to 2003-10-19
  • 打赏
  • 举报
回复
1 st[i]!='\0'
2 j++,k++
3 sub[k]=='\0'

zbstone 2003-10-19
  • 打赏
  • 举报
回复
1 st[i] !='\0'&&sub[i]!='\0'
2 j++,k++
3 sub[k+1] == '\0';

4 I
5 array
6 "%d",array[I]
7 *(s+i)=*(s+j)
8 I++,j--

69,335

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧