C语言之字符串与指针

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",p);

}

ABCD

BCD

CD

D

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

#include <string.h>

main( )

{

char *p="abcdefg";

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

}

5


五、 指针数组

指针数组:

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

定义形式:

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

例如: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",*ptr,*(ptr+2));

6,10

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

#include "string.h"

func(char str[])

{int num=0;

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

num++;

return num;

}

void main( )

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

gets(p);

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

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值