分享

C语言

 thchen0103 2017-02-02

1、字符串的存储与访问

字符串的访问

char str[N];

第i个字符的地址:str+i

第i个字符:*(str+i)

思考???

以下写法是否正确?

char s1[N];

s1[]=“Welcome”;

s1=“Welcome”;

错误!必须逐一赋值或使用函数,且数组长度要足够大。

可以使用字符指针解决:

char *s;

s=“Welcome”;

或:char *s=“Welcome”;

通过++运算指向下一个字符。

练习:

C语言-----字符串与指针

1、若有如下定义和语句,请写出通过指针p取出

字符‘g’的表达式:*(p+6)

char s[13]="abcdefghijk", *p=s;

2、下面程序的输出结果为:

void main( )

{ char *p,s[ ]="ABCD";

for(p=s;p<s+4;p++)

printf("%s\n",p);

}

ABCD

BCD

CD

D

3、写出程序的运行结果:

#include <string.h>

main( )

{

char *p="abcde\0fg\0";

printf("%d",strlen(p));

}

5


五、 指针数组 可以加下群466572167(群内有各种项目学习资料)

指针数组:

数组的所有元素都是指针类型数据(指针变量)。

定义形式:

类型名 *数组名[元素个数];

例如:char *name[10];

具体应用:一般用于处理一组字符串数据。

应用举例:

C语言-----字符串与指针

char *name[]={“Tom”,”Mike”,”Mary”,”Peter”};

for(i=0;i<4;i++)

puts(name[i]);

练习:可以加下群466572167(群内有各种项目学习资料)

1、定义a为共有5个元素的一维整型数组,同时定义p为指向a数组地址的指针变量的语句为

int a[5],*p=a;

2、设int x[ ]={1,2,3,4}, y, *p=&x[1]; ,则执行语句 y=(*--p)++后y的值为 --p为&x[0] 内容为:1 结果为1

?此时x[0]值变为多少?2

3、下面程序的输出结果为:

int *ptr;

int arr[]={6,7,8,9,10};

ptr=arr;

*(ptr+2)+=2;

printf("%d,%d\n",*ptr,*(ptr+2));

6,10

4、若输入abcdef回车,写出程序的运行结果:

#include "string.h"

func(char str[])

{int num=0;

while(*(str+num)!='\0')

num++;

return num;

}

void main( )

{ char str[10],*p=str;

gets(p);

printf("%d",func(p));}

6


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多