不要眼高手低
上次直播思考
解法如下: 巧妙利用字符串结束标志为 '\0'
#define _CRT_SECURE_NO_WARNINGS
#include
void print(char d[]) {
int i = 0;
while (d[i] != '\0') {
printf("%c", d[i]);
i++;
}
printf("\n");
}
int main08() {
char c[10] = "hello";
print(c);
printf("Hello world");
return 0;
}
注意:
fgets(c, sizeof(c), stdin);
fgets
相对于gets去读取标准输入时,会把\n
放到字符数组中,即为把输入回车结束,也进行存储。解决方法如下:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
int main() {
char c[100];
fgets(c, sizeof(c), stdin);
int len = strlen(c);
c[len - 1] = '\0';
puts(c);
return 0;
}
scanf
通过%s
读取字符串时,当遇到空格以后,就会匹配结束,这样没办法把一行带有空格的字符串存入到一个字符数组中心puts
只能输出字符串char *strcpy(char *to, const char *from)
strcat
拼接两个字符串,目标数组要能够容纳拼接后的字符串
指针的定义格式如下
基类型 * 指针变量名
&
,也称引用,通过该操作符我们可以获取一个变量的地址值;取值操作符为*
,也称解引用,通过该操作符我们可以得到一个地址对应的数据。如下图所示,我们通过&i
获取整型变量i的地址值,然后对整型指针变量p进行初始化,p中存储的是整型变量i的地址值,所以通过第12行的*p
就可以获取整型变量i的值。P中存储的是一个绝对地址值,那为什么取值时会获取4字节大小的空间呢?这是因为p为整型变量指针,每个int型数据占用4字节大小的空间,所以p在解引用时会访问4字节大小的空间,同时以整型值对内存进行解析。*
取值(解引用) &
取地址 (引用)a
类型是数组,a
里边存了一个值,是地址值,是数组的起始地址,运用,这种指针偏移技术可以巧妙的输出数组的元素