案例一 使用字符数组统计字符串的长度以及实现字符串的反转
参考代码:
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{
char s[100];
printf("请输入字符串:");
scanf("%s",s);
int len;
len = strlen(s);
printf("字符串的长度为:%d\n",len);
char temp;
for(int i=0;i<len/2;i++)
{
temp = s[i];
s[i] = s[len-1-i];
s[len-1-i] = temp;
}
printf("反转后的字符串为:%s\n",s);
return 0;
}
运行截图:
案例二 使用字符型指针统计字符串长度以及字符串反转
参考代码
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{
char s[100];
printf("请输入字符串:");
scanf("%s",s);
//指向字符数组的指针
char *p = s;
int count;
//注意:此处用*取出字符型指针变量的值
while(*p!='\0')
{
count++;
p++;
}
printf("count=%d\n",count);
int len;
len = strlen(s);
printf("字符串的长度为:%d\n",len);
char temp;
for(int i=0;i<len/2;i++)
{
//temp = s[i];
temp = *(p+i);
//s[i] = s[len-1-i];
*(p+i) = *(p+len-1-i);
//s[len-1-i] = temp;
*(p+len-1-i) = temp;
}
printf("反转后的字符串为:%s\n",s);
return 0;
}
运行截图:
C语言字符型数组相关知识回顾
字符数组顾名思义就是数组的元素类型为字符型的数组。特殊之处在于它是数组元素为字符的数组。其定义的一般形式和注意事项与之前讲解的一般数组类似,只是其中的类型说明符是char。当然,并不是说类型说明符只能是char,也可以是long、int等,但是由于char型只占用一个字节的大小,使用long型和int型来定义字符数组会造成资源的浪费,因此一般选择使用char型来定义字符数组。
C语言字符型指针相关知识回顾
在指针的类型中,我们知道有一种指针类型为字符指针char*p,变量p指向字符数组的首地址。注意:指针里存放的是地址,取值需要加*。
通过以上案例,有没有觉得指针并没有你想象中的那么难了?