C语言指针程序

C语言指针程序,第1张

#include<stdio.h>

#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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12318922.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存