用指针实现strlen
#include <stdio.h>
int my_strlen(const char *str) {
int length = 0;
while (*str != '\0') {
length++;
str++;
}
return length;
}
int main() {
char str[] = "Hello, world!";
printf("Length of the string is: %d
", my_strlen(str));
return 0;
}
用指针实现strcpy
#include <stdio.h>
char *my_strcpy(char *dest, const char *src) {
char *temp = dest;
while (*src != '\0') {
*dest = *src;
dest++;
src++;
}
*dest = '\0';
return temp;
}
int main() {
char src[] = "Hello, world!";
char dest[20];
printf("Source string: %s
", src);
my_strcpy(dest, src);
printf("Destination string: %s
", dest);
return 0;
}
用指针实现strcat
#include <stdio.h>
char *my_strcat(char *dest, const char *src) {
char *temp = dest;
while (*dest != '\0') {
dest++;
}
while (*src != '\0') {
*dest = *src;
dest++;
src++;
}
*dest = '\0';
return temp;
}
int main() {
char str1[20] = "Hello";
char str2[] = ", world!";
printf("Before concatenation: %s
", str1);
my_strcat(str1, str2);
printf("After concatenation: %s
", str1);
return 0;
}
用指针实现strcmp
#include <stdio.h>
int my_strcmp(const char *str1, const char *str2) {
while (*str1 == *str2) {
if (*str1 == '\0') {
return 0;
}
str1++;
str2++;
}
return *str1 - *str2;
}
int main() {
char str1[] = "Hello";
char str2[] = "World";
printf("Comparison result: %d
", my_strcmp(str1, str2));
return 0;
}
写一个swap函数实现两数交换
#include <stdio.h>
void my_swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int x = 10;
int y = 20;
printf("Before swap: x=%d, y=%d
", x, y);
my_swap(&x, &y);
printf("After swap: x=%d, y=%d
", x, y);
return 0;
}