目录
3、strcpy和strncpy函数----字符串复制函数:(返回地址)
一、字符数组:
1、定义:字符数组是用来存放字符数据的数组。
2、C语言中没有字符串变量,那如何存储字符串呢?
①字符数组来存放 ②字符型指针变量
(一)字符数组的初始化:
与其他类型方法一样:
类型名 数组名[常量表达式]=初始化列表;
- 如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预料的。
- 如果花括号中提供的初值个数(即字符个数)大于数组长度,则出现语法错误。
- 如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符(即'\0')
- 如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度,用这种方式可以不必人工去数字符的个数,尤其在赋初值的字符个数较多时比较方便。
用字符串给一个字符数组进行初始化有四种情况:
char a[ ]="abcd";
char a[ ]={"abcd"};
char a[ ]={'a','b','c','d','\0'};
char *a="abcd";
(二)字符数组的输入输出:
1、逐个字符输入输出,用格式符“%c"输入或输出一个字符,如:
#include <stdio.h>
//输出一个已知的字符串
int main()
{
char c[15] = { 'I',' ','a','m',' ','a',' ','s','t','u','d','e','n','t','.' };
int i;
for (i = 0; i < 15; i++)
{
printf("%c", c[i]);
}
printf("\n");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS //scanf安全问题解决 或用 #pragma warning(disable:4996)
#include <stdio.h>
int main()
{
int i;
char c[5];
for (i = 0; i < 5; i++)
{
scanf("%c", &c[i]);
}
for (i = 0; i < 5; i++)
{
printf("%c", c[i]);
}
return 0;
}
2、将整个字符串一次输入或输出,用"%s"格式符,如:
#include <stdio.h>
int main()
{
char c[15] = { "China"};
printf("%s", c);
return 0;
}