C语言字符数组与字符串简介

#include<stdio.h>
#include<stdlib.h>


void main()
{
	//数组的定义
	char str[5] = { 'a', 'b', 'c', 'd', 'e' };
	for (int i = 0; i < 5; i++)
	{
		//数组名可以当成指针,但是数组名是常量
		printf("%c,%c\n", str[i],*(str+i));
	}
	//对于字符数组可以用数组的方式输出 但要是用字符串的形式就会变得不一样
	//这是因为用字符串输出时直到遇见'\0'时才会停止输出,而对于str,定义数组时是满数组定义的
	//缺少‘\0’,在输出abcde后会出现乱码
	printf("%s\n\n\n", str);    
	system(str);  //不能执行 以字符串的形式运行 但没有'\0',不知道截取多少位 直到遇见'\0'为止
	
	
	//下面两种赋值都会出现错误,会出现错误 这是因为str3是常量  不能对其进行赋值
	//char str3[10];
	//str3 = "ipconfig";       
	//str3 = { 'A' };


	//下面是定义一个5个元素的字符数组,但实际初始化了4个元素,最后一个元素会默认为'0'
	char str1[5] = { 'c', 'a', 'l', 'c' };
	printf("%s", str1);
	system(str1);  //可以直接用数组名运行,但是以字符串的形式  成功打开calc


	//下面是用字符串对字符数组初始化  但不能满数组初始 因为没有'\0'的位置,
	//字符串后面系统会默认跟一个'\0'
	//char *str2[10] = "mapaintaaa";
	char str2[10] =  "mspaint" ;
	printf("\n\n%s\n", str2);
	system(str2);


	//下面是用指针来指向字符串的首地址
	//char *pc = "ipconfig";  这种方式也是可以的
	char *pc;
	pc = "ipconfig";         //这种方式是可以的 但字符数组这样初始不行
	printf("%s\n", pc);
	system(pc);


	//下面是定义二维字符数组
	char twostr[5][11] = { "color 5f",
							"title my",
							"echo style",
							"tasklist",
							"write" };
	for (int i = 0; i < 5; i++){
		printf("\ntwostr[%d]=%s", i, twostr[i]);   //在这里要注意 twostr[i] 是可以打印的
	}
	for (int i = 0; i < 5; i++){
		system(twostr[i]);
	}

	getchar();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值