C/C++编程练习题 (41-50)
使用C/C++两种语言完成50道题目,体会两种语言之间的不同。编译环境都是在VS2019,完成时间2020.06.21-2020.06.22 。由于C++ 对C的兼容性,部分main()函数没有写return 0 也可以执行成功,但是不提倡,最好加上,否则其他编译器可能报错。C语言不需要严格对齐,因此不对CSDN 的格式做过多的纠正。
41. 写一个字符串拷贝函数
C
#include<iostream>
using namespace std;
void strcpy1(char*, const char*);
void strcpy1(char* p, const char* q)
{
while (*p++ = *q++);
}
int main()
{
char p[20] = {
};
char q[20] = {
"as456iiiiiihjkd" };
strcpy1(p, q);
int i = 0;
while (p[i]!='\0')
{
printf("%c", p[i]);
i++;
}
return 0;
}
C++
#include<iostream>
using namespace std;
void strcpy1(char*, const char*);
void strcpy1(char* p, const char* q)
{
while (*p++ = *q++);
}
int main()
{
char p[20] = {
};
char q[20] = {
"as456iiiiiihjkd" };
strcpy1(p, q);
cout << p;
}
42. 写一个字符串比较函数
C
#include<stdio.h>
int strcmp1(char*, const char*);
int strcmp1(char* str1, const char* str2)
{
while (*str1 && *str2 && *str1 == *str2)
{
str1++; str2++;
}
return *str1 - *str2;
}
int main()
{
char str1[] = "aerttydfgs";
char str2[] = "wertyyyyyg";
printf( "%d",strcmp1(str1, str2));
}
C++
#include<iostream>
using namespace std;
int strcmp1(char*, const char*);
int strcmp1(char* str1, const char* str2)
{
while (*str1 && *str2 && *str1 == *str2)
{
str1++; str2++;
}
return *str1 - *str2;
}
int main()
{
char str1[] = "werttydfgs";
char str2[] = "wertyyyyyg";
cout << strcmp1(str1, str2);
}
43. 写一个字符串连接函数
C