0
点赞
收藏
分享

微信扫一扫

C语言指针-字符串(三)

Raow1 2022-04-30 阅读 57

一、字符串与指针(谭浩强-C程序设计第三版10.4  P251)

        在C程序中,可以用两种方法访问一个字符串①用字符数组存放一个字符串,然后输出该字符串。(下面例子中的 char a[]="I love China!",输出用%s来输出)。②用字符指针指向一个字符串。(下面例子是指针定义一个字符串char *b="I love China!")。

#include<stdio.h>
void main()
{
 	char a[]="I love China!";//第一种定义一个字符串 
 	char *b="I love China!";//第二种指针定义一个字符串 
	printf("%s\n",a);
	printf("%s\n",b);
}

  方法②对于字符指针变量b初始化,实际上是把字符串第1个元素的地址(存放字符串的字符首地址赋给b)char *b="I love China!"等价于 char *b;         b="I love China!"  这两句。注意字符串最后被自动加'\0'         注意!通过字符数组名或者字符指针可以输出一个字符串,对于一个数值型数组,是不能企图用数组名输出它全部元素的。int i[10]...        printf("%d",i);是不行的。

#include<stdio.h>
void main()
{
	char c[]="china";
	char *ptr=c;
	char x='m';
	int i;
  	printf("%c \n",x);
  	printf("%s \n",c);		//打印字符串china 
  	printf("%c \n",*(ptr+1));//打印字符h 
 	for(i=0;i<6;i++)
	 {
		printf("%c ",*(ptr+i));//注意 输出是china 
 		printf("--%c \n",*ptr+i);//注意 输出是cdefgh 
 	}
 	//下面是计算输入字符串长度的函数 
 	int j;
 	char sc[100];
	printf("输入字符串:");
	scanf("%s",sc);
	printf("输入字符串是%s-->",sc);
	for(j=0;sc[j]!='\0';++j);//此处分号不能省略 
 	printf("长度是%d",j);
}

二、字符指针作函数参数(10.4.2)

字符数组作参数-交换两个字符串

#include<stdio.h>
void copy_string(char from[],char to[])
{
	int i=0;
	while(from[i]!='\0')
	{
		to[i]=from[i];
		i++;
	}
	to[i]='\0';	//后面的空字符串需要打印 
}
void main()
{
 	char a[]="I am a teacher";
 	char b[]="I am a student";
	printf("string a %s \n",a);
	printf("string b %s \n",b);
 	copy_string(a,b);
 	printf("string a %s\nstring b %s \n",a,b);
}

 形参用字符指针变量-交换两个字符串

#include<stdio.h>
void copy_string(char *from_a,char *to_b)
{
for(;*from_a!='\0';from_a++,to_b++)
	*to_b=*from_a;
	*to_b='\0';	//后面的空字符串需要打印 
}
void main()
{
 	char from[]="I am a teacher";
 	char to[]="I am a student";
 	char *a=from,*b=to;	
	printf("拷贝前b是 %s \n",b);
 	copy_string(a,b);
 	printf("拷贝后b是 %s \n",b);
 	printf("string a %s\nstring b %s \n",a,b);
}

体会函数内指针的传递

友情提示:技术交流及代码分享QQ群号码:255864236

举报

相关推荐

0 条评论