前言
为准备大四华为笔试,决定使用学长推荐的《算法笔记》一书来学习,配套有《算法笔记·上机训练实战指南》,希望学习完此书,刷完力扣,能够通过笔试,为拿到大厂offer奠定基础💪
此文为实战系列第五篇。
我的笔记
1.问题 B: 习题7-7 复制字符串中的元音字母
该题目很好上手,但是过程中出现不少问题,注意:不要靠惯性写代码,像套模板似的,要带上自己的脑子逻辑去写,如不假思索写for循环,for循环不假思索写i++.
#include <stdio.h>
#include <string.h>
void vowels(char s[], char t[]) {
int i, j = 0;
for(i = 0; i < strlen(s); i++) {
if(s[i] == 'a'||s[i] == 'e'||s[i] == 'i'||s[i] == 'o'||s[i] == 'u') {
t[j] = s[i];
j++;
}
if(s[i] == 'A'||s[i] == 'E'||s[i] == 'I'||s[i] == 'O'||s[i] == 'U') {
t[j] = s[i];
j++;
}
}
}
int main() {
char a[15], b[15] = {0};
gets(a);
vowels(a,b);
puts(b);
// for(int i = 0; i < strlen(a); i++)
// printf("%c", b[i]);//这样输出显示答案错误,和2.5中问题一样,估计是输出数据类型错误了
printf("\n");
return 0;
}
另外,在别人的博客中学习到:
数组未初始化出现乱码的解决方法 ①给数组初始化 ②加结束字符s2[j]='\0'