#include<string.h>
char
*fun(char
*s,char
*t)//函数功能是在字符串S中找字符串T
{
char
*p,*r,*a
a=NULL//是一个标志,开始没查找到
//开始s=&s[0]
while(*s)//从S
的第一个字符开始查找,直到遇到'\0'
{
p=s
r=t
while(*r)//从T
的第一个字符开始查找,直到遇到'\0'
if(*r==*p)//如果在S字符串中册世闹找返散到了第一个
T字符串州罩的T[0],
{
r++//在比较T[1]
t[2]....
p++//同上
}
else
break
if
(*r=='\0')
a=s//表明查找到了
s++
}
return
a//返回NULL没到到,否则找到了
}
main()
{
char
s[100],t[100],*p
printf("\n
please
enter
string
S:")
scanf("%s",&s)
printf("\n
please
enter
string
T:")
scanf("%s",&t)
p=fun(s,t)
if(p)//真,为找到了
printf("\n
the
result
is
:%s\n",p)
else
printf("\n
not
found!\n")
}
#include<stdio.h>#define N 5
#define M 5
void f(int a[][M],int n,int m,int *s) { int i,j
for ( i=0i<ni++,s++ ) {
*s=a[i][0] for ( j=1j<mj++ ) if ( *s<a[i][j] ) 则锋和*s=a[i][j]
}
}
void main() { int a[N][M],s[N],i,j
for ( i=0i<Ni++ ) for ( j=0j<Mj++ ) scanf("%d"孙盯,&a[i][j])
f(a,N,M,s)
基薯for ( i=0i<Ni++ ) printf("%d\n",s[i])
}
跟着程序走str[10]="abcdefg\0"
p=str+strlen(str)/顷羡2+1=str+7/2+1=str+3+1=str+4='e'的地址。
把p,p-2的值作为参数传给函数f。
函数f的功能就是
:
p
和
p-2指向地址的值相交换,然后p+1和p-3指向地址的值相交换
然后p+2和P-4
。。。。。一直交换到P+n指向结束符号‘\0’的地址。
所以依次交换的结果:(大写表示下次要交换的字迟凯符)
abCdEfg=>aBedcFg=>AfedcbG=>gfedcba
所以选码乎唤B
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)