这节课主要讲述字符数组与字符指针
#include <stdio.h>
int main()
{
char sa[] = "array";
char *sp = sa;
printf("%s\n", sa);
printf("%s\n", sp);
printf("%c\n", sa[4]);
printf("%c\n", sp[4]);
return 0;
}
稍作改变
#include <stdio.h>
int main()
{
char sa[] = "array";
char *sp = "point";
printf("%s\n", sa);
printf("%s\n", sp);
printf("%c\n", sa[4]);
printf("%c\n", sp[4]);
return 0;
}
char sa[] = “array”; 不可以分开写char *sp = “point”; 可以分开写
例如:
char *sp;
sp = “point”;
char sa[6]; scanf("%s", sa); 字符数组可以这样写
char *sp; scanf("%s", sp); 但字符指针这样写是定义了一个野指针,其访问地址是随机的,这是进行读入是错误的,不能这样用。可以这样写:
char *sp, str[20];
sp = str;
scanf("%s", sp);
字符加密
#include <stdio.h>
void encrypt(char *s);
int main()
{
char line[100];
scanf("%s", line);
encrypt(line);
printf("%s\n", line);
return 0;
}
void encrypt(char *s)
{
int i;
for (i = 0; *(s + i) != '\0'; i++)
{
if (s[i] == 'z')
{
s[i] = 'a';
}
else
{
s[i] = s[i] + 1;
}
}
}
encrypt函数也可以这样写
void encrypt(char *s)
{
for (; *s != '\0'; s++)
{
if (*s == 'z')
{
*s = 'a';
}
else
{
*s = *s + 1;
}
}
}