c语言字符串详解

版权声明: https://blog.csdn.net/xu_coding/article/details/82728289

c语言字符串,c语言处理字符串一般使用字符数组来处理,记得加上结束符,否则会出现乱码。

1、通过字符数组来处理

#include <stdio.h>
#include <Windows.h>
#include <stdlib.h>
int main(void) {
	char str1[8] = { 'a','h','i','n','a' };      //实际上字符串长度为5,赋值比5位大,自动加上结束符号
	char str2[] = { 'b','h','i','n','a','\0' };			// '\0'  表示结束符号
	char str3[10] = "china";
	//这里实际上 str1,str2,str3都是存放的 字符数组 的首地址
	printf("%s\n",str1);
	printf("%s\n", str2);
	printf("%s\n", str3);   //这里表示按照 16 进制输出
	getchar();
	return 0;
}

2:通过字符指针来处理

int main(void) {
	char *str = "feng lai le";   
	//定义一个指针变量,指针变量,  
	//定义指针变量的方式由一个基础类型short、int、long、char、float、double 加一个*
	//这里 指针变量 为str, 指向的是字符串第一个字符f;也就是说当前指针变量存放的是f的地址
	printf("%s\n", str);     //这里传入的是指针变量str  
	// 这里输出的时候(实际上是循环读取),会一直读取,直到读取到 "\0"的结束符号;
	//循环读取
	while(*str){       //这里的while循环 循环条件为真的时候
		printf("%c", *str);   //指针取的是第一个字符  
		str++;       //指针加减就是将指针向后向前移动
	}
	printf("%c\n", "");
	int shuzu[] = {1223,2222,4565,5655};
	int *integer1;
	integer1 = &shuzu;   //将数组的首地址赋值给指针
	printf("%d\n", integer1);   //这里输出的将是 shuzu 的第一个地址 十进制
	getchar();
	return 0;

}

总结一下:
1、通过字符数组名或字符指针变量可以输出整个字符串。但是对于一个数值型数组:例如整形数组是不能这样操作的。
2、通过字符指针的方式,是不能修改其中的值得,这是因为 数据保存在静态数据区域,无法通过指针来修改静态区域中的值,但是字符数组的方式,是可以修改值得,因为字符数组的方式,数据是存放在栈空间数组的。

猜你喜欢

转载自blog.csdn.net/xu_coding/article/details/82728289
今日推荐