下载此文档

指针与字符串.ppt


文档分类:IT计算机 | 页数:约11页 举报非法文档有奖
1/11
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/11 下载此文档
文档列表 文档介绍
指针与字符串
字符串是用字符数组存放的,存放字符串的数组会在最后加上’\0’表示字符串的结束。
可以用指针指向字符数组的首地址,访问字符串,并用’\0’判断字符串的结束。如:
char *p,str[30];
p=str;
p=&str[0];
1、字符串的表示形式
⑴用字符数组实现:
void main( )
{
static char s[ ]="I love China!";
printf("%s\n", s);
}
⑵用字符指针指向一个字符数组(字符串):
static char s[ ]="I love China!";
char *p;
p=s;
printf("%s\n", p);
输出字符指针就是输出字符串,输出时从指向的字符开
始逐个输出,直到遇到'\0'时结束。
⑶用字符指针指向一个字符串常量:
char *ps="I love China!";
printf("%s\n", ps);
等价于:
char *ps;
ps=“I love China!”; //将字符串常量赋值给字符指针
printf("%s\n", ps);
C语言在处理字符串常量时,开辟一段连续的内存单元,存放字符串中的各字符和'\0'。
将字符串常量赋值给字符指针时,是将字符串在内存中的首地址赋给指针变量。
字符数组赋初值时,是将字符串的各字符和字符串结束标志'\0'存放在数组的各元素中,数组首地址用数组名表示。
实例:输入字符串a,然后将它复制到字符串b中,并输出b。不得使用字符串拷贝函数。(数组法)
#inlcude <>
void main( )
{
char a[50],b[50];
int i;
gets(a);
for (i=0;a[i]!='\0';i++)
b[i]=a[i];
b[i]='\0';
puts(b);
}
实例:输入字符串a,然后将它复制到字符串b中,并输出b。不得使用字符串拷贝函数。(指针法)
#inlcude <>
void main( )
{
char a[50],b[50];
int *pa,*pb
pa=a; pb=b;
gets(a);
while(*pa!='\0')
{ *pb=*pa; pa++; pb++; }
*pb='\0';
puts(b);
}
2、字符串(字符指针)作为函数参数
将一个字符串从一个函数传递到另一个函数,可以用地址传递的方法,即用字符数组名、指向字符串的指针变量或其它字符地址表达式作参数。
#include <>
void main( )
{
char str1[30]="abcdefg";
char str2[ ]="12345";
……
copy_string(str1, str2);
……
}
实例:输入字符串a,然后将它复制到字符串b
中,并输出b。不得使用字符串拷贝函数。
数组作为函数参数
void copy_string(char to[ ], char from[ ])
{
int i=0;
while (from[i]!='\0')
{ to[i]=from[i]; i++; }
to[i]='\0';
}
实例:输入字符串a,然后将它复制到字符串b中,并输出b。不得使用字符串拷贝函数。
字符指针作形参:
void copy_string(char *to, char *from)
{
for ( ; *from!='\0'; from++, to++)
*to=*from;
*to='\0';
}
可对copy_string函数做下列简化:
①void copy_string(char *to, char *from)
{
while ( (*to=*from)!='\0' )
{ to++; from++; }
}
②void copy_string(char *to, char *from)
{
while (*to=*from)
{ to++; from++; }
}
③void copy_string(char *to, char *from)
{
while ( (*to++=*from++)!='\0' ) ;
}
④void copy_string(char *to, char *from)
{
while (*to++=*from++);
}

指针与字符串 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数11
  • 收藏数0 收藏
  • 顶次数0
  • 上传人plm860108
  • 文件大小594 KB
  • 时间2018-08-18