目录
1. 格式
数据类型 数组名 [数组长度];
char s[20];
类型说明符 数组名[常量表达式];
2. 字符串长度
char s[] = "hello"; // s的长度 --- 数组的长度,为6.
char s[10] = "hello"; // s的长度 --- 数组的长度,为10
char s1[10];
gets(s1);
char s2[10];
s2 = s1; // C语言中不能这样整体赋值
3. 字符数组的输入输出
3.1 gets函数
gets(s);
功能:从键盘输入一个字符串;
注:使用gets函数时需要注意越界风险,gets函数不会计入换行符。
3.2 puts函数
puts(s);
功能:输出一个字符串
注:puts函数自带换行符。
3.3 scanf函数
scanf("%s",s);
3.4 printf函数
printf("%s",s);
4. 字符串处理函数
4.1 strlen函数(计算数组长度)
#include<stdio.h>
int main(void)
{
char s[20] = "hello";
int i = 0;
while(s[i] != '\0')
{
++i;
}
printf("%d\n",i);
return 0;
}
相当于:
strlen(s);
4.2 strcpy函数(复制字符串)
#include<stdio.h>
int main(void)
{
char s1[20];
char s2[20];
int i = 0;
gets(s1);
while(s1[i]!='\0')
{
s2[i] = s1[i];
++i;
}
s2[i] = '\0';
puts(s2);
return 0;
}
相当于:
strcpy(s2,s1);
strcpy(目标数组,原数组);
4.3 strcat函数(拼接字符串)
#include<stdio.h>
int main(void)
{
char s1[20] = "hello";
char s2[20] = "world";
int i = 0;
int j = 0;
while(s1[i]!='\0') // 定位'\0'的位置
{
++i;
}
while(s2[j] != '\0')
{
s1[i] = s2[j]; // 从s1'\0'的位置开始把s2的每个元素给到s1;
++i;
++j;
}
s1[i] = '\0'; // 加上\0使其成为字符串
puts(s1);
return 0;
}
这个函数可以实现strcat的功能,相当于:
strcat(s1,s2);
strcat(目标数组,原数组);
4.4 strcmp函数(比较字符串)
原理就是比较字符的ascii值,返回的是两个字符组首个不同字符的ASCII值的差值。
#include<stdio.h>
int main(void)
{
char s1[20];
char s2[20];
gets(s1);
gets(s2);
int i = 0;
while(s1[i]==s2[i] && s1[i]!='\0' && s2[i]!='\0')
{
++i;
}
if(s1[i] > s2[i])
{
printf("s1 > s2\n");
}else if(s2[i] > s1[i])
{
printf("s2 > s1\n");
}else
{
printf("s1 = s2\n");
}
return 0;
}
这个函数是实现strcmp的功能,相当于:
#include<stdio.h>
#include<string.h>
int main(void)
{
char s1[20];
char s2[20];
gets(s1);
gets(s2);
printf("%d\n",strcmp(s1,s2));
return 0;
}
标签:字符,20,函数,s2,s1,char,一维,gets,日记
From: https://blog.csdn.net/qq_70030717/article/details/140801480