前言
本文记录的是HR让应聘者手撕代码的常见题型
一、将字符串的小写字母挑出来
假如有一个字符串数组为:aAbBcC
输出:abc
代码如下(示例):
#include <stdio.h>
#include <malloc.h>
char* func(char* s);
int main(void) {
int i = 0;
char s[10] = {'a', 'A', 'b', 'B', 'c', 'C'};
char * b = func(s);
while( *(b + i) != '\0') {
printf("%c", *(b + i));
i++;
}
printf("\n");
return 0;
}
char* func(char* s) {
char* b = (char*)malloc(sizeof(char));
int i = 0, j = 0;
while(*(s + i) != '\0') {
if('a' <= s[i] && s[i] <= 'z') {
b[j] = s[i];
j++;
}
i++;
}
return b;
}
二、字符串翻转
假如有一个字符串数组为:ABCDEFG
输出:GFEDCBA
代码如下(示例):
#include <stdio.h>
void Turn_Array(char* s, int n);
int main(void) {
int i;
char s[8] = {'A', 'B', 'C', 'D', 'E', 'F', 'G'};
Turn_Array(s, 7);
for(i = 0; i < 7; i++) {
printf("%c", s[i]);
}
printf("\n");
return 0;
}
void Turn_Array(char* s, int n) {
int temp = 0;
int i = 0, j = n-1;
while(i < (n / 2) ) {
temp = s[i];
s[i] = s[j];
s[j] = temp;
i++;
j--;
}
return ;
}
结果显示: