关于数组和指针的一道题 自定义gets函数
请定义函数实现 字符串strcpy,strlen,strcmp,strcat
和从输入流读取一行字符串(可能包含空格)的功能。
【注意】
你的程序不应该使用 string.h 头文件中的任何函数,
也不应该使用 gets、fgets 等与需求类似的输入函数。
请提交以下代码模板补全后的完整代码。
【代码模板】
// ↓↓↓请提交以下的所有内容↓↓↓
#include <stdio.h>
char* _strcpy(char* dest, const char* src) {
// 在这里实现 strcpy
}
int _strlen(const char* str) {
// 在这里实现 strlen
}
int _strcmp(const char* lhs, const char* rhs) {
// 在这里实现 strcmp
}
char* _strcat(char* dest, const char* src) {
// 在这里实现 strcat
}
char* _gets(char* str) {
// 在这里实现 从输入流读取一行字符串(可能包含空格)
// 你可以不考虑 EOF 的问题
}
int main() {
char a[201],b[101],cmd[7];
while(1) {
_gets(cmd);
if(_strcmp(cmd, "GETS") == 0) {
puts(_gets(a));
} else if(_strcmp(cmd, "STRCPY") == 0) {
int offset;
scanf("%d",&offset);
getchar();
_gets(b);
_strcpy(a + offset, b);
puts(a);
} else if(_strcmp(cmd, "STRLEN") == 0) {
printf("%d\n",_strlen(a));
} else if(_strcmp(cmd, "STRCMP") == 0) {
_gets(b);
int result = _strcmp(a, b);
printf("%d\n", result > 0 ? 1 : (result < 0 ? -1 : 0));
} else if(_strcmp(cmd, "STRCAT") == 0) {
_gets(b);
puts(_strcat(a, b));
} else {
break;
}
}
return 0;
}
// ↑↑↑请提交以上的所有内容↑↑↑
【样例输入】
GETS
Hello World!
STRCPY
6
Everyone
STRLEN
STRCMP
Hello Everyone
STRCAT
!
END
【样例输出】
Hello World!
Hello Everyone
14
0
Hello Everyone!