v1
1.掌握字符数组的用法
字符数组是元素的数据类型为字符类型的数组
char c[10],ch[3][4];
字符数组的初始化
逐个字符赋值
用字符串常量
‘a’, " abc" 相当于'a','b','c','d' '\0'
char arr[]={'a','b','c'};这二者区别在哪呢?
char arr2[6]={'a','b','c'};
求每个数组中有几个元素,输出该数组中的元素。
arr1与arr2的地址空间可能是连续的,验证
验证了地址连续这件事情,且打印arr1时后面的一起打印出来了
v2 字符数组和字符串
二维数组初始化
二维数组存放(存储一系列的字符串)
求所用行数sizeof(fruit)/sizeof([0])//即求数组总空间/一行占的总空间
以及求列数一行总空间/任意元素所占空间
输出二维数组,先求出行列,之后再遍历输出
v3 字符数组和字符
如果是定义的话,输出welcome没有问题,如果是键盘输入,输出就会乱码,因为是逆序输出数组里的字符,从最后一个字符开始输出,但是键盘输入的字符串可能没有数组的长度那么长。
由于上面代码里是n=sizeof(arr)/sizeof(char),求出数组的元素个数
我们对于键盘输入的字符串获取长度,使用strlen函数,之前还要加一个头文件
#include <string.h>,因为strlen函数包含在这个库文件里头。
上面那个是逆序输出且只用了一个变量下标,用来递减
也可以使用两个下标,一个i,一个j,之后一个指向第一个字母,与最后一个字母交换,之后递增,一个指向最后一个字母,之后递减,如果二者相遇,则停止交换
v4 字符串函数之strlen函数
strlen函数,他是计算字符串长度,但不含\0。
第一个由于第二个字符就是\0,所以长度为1
v5 字符串拷贝函数strcpy
拷贝函数(str)的源码:
两个字符串相比较时,前面一样,短的ASCII值小
当strcpy 函数变成 strncpy函数时
strcpy (字符数组1,字符串2)
将字符串2拷贝到字符数组1中去
字符数组1中就被字符串2 给填满了
但是strncpy函数中这个拷贝的长度是有限制的,就是n
以下面这个代码为例,将src这个字符串中内容拷贝到dest字符数组中,且长度为4
strncpy函数
src[]='makeru'
dest[]='com.cn'
strncpy(dest,src,4)
dest[]='make.cn'
strncat函数
src[]='makeru'
dest[]='com.cn'
strncat(dest,src,4)
dest[]='com.cnmake'
strncmp函数(比较的时候比较前几个字母)
#include <stdio.h>
#include <string.h>
#define N 30
int main(int argc,char *argv[])
{
char s1[]='quit';
char s2[]='quit\n';
printf("%d\n",strcmp(s1,s2));
return 0;
}
运行结果是-1
#include <stdio.h>
#include <string.h>
#define N 30
int main(int argc,char *argv[])
{
char s1[]='quit';
char s2[]='quit\n';
printf("%d\n",strncmp(s1,s2,4));
return 0;
}
运行结果是0,因为只比较前四个字母,所以结果为0
strchr函数的使用方法,主要有以下两种:第一种是用它来查询字符串中是否存在某个字符,如果有,返回字符的地址,如果没有,返回NULL。
两个地址相减,则返回的是出现那个要寻找字符的下标
c语言中“strstr(str1,str2)”函数用于判断字符串“str2”是否是“str1”的子串;如果是,则该函数返回“str2”在“str1”中首次出现的地址;否则返回NULL。
v12
检查输入的是大写,还是小写,还是数字
#include <stdio.h>
#include <ctype.h>
int main(int agrc,char *argv[])
{
int ch;
while((ch=getchar())!=EOF){
if(isalpha(ch)) {
if(isupper(ch))
printf("Upper:%c\n",ch);
if(islower(ch))
printf("Lower:%c\n",ch);
}
if(isdigit(ch))
printf("Digit:%d\n",ch-'\0');
putchar(ch);
}
return 0;
}
字母的大小写转换,代码
#include <stdio.h>
#include <ctype.h>
int main(int agrc,char *argv[])
{
int ch;
while((ch=getchar())!=EOF){
if(isalpha(ch)) {
if(isupper(ch))
ch=tolower(ch);}
else{
ch=toupper(ch);
}
printf("%c\n",ch);
}
}
return 0;
}