lr5/main1
2024-11-26 19:44:47 +04:00

77 lines
1.5 KiB
Plaintext

#include <Windows.h>
#include <stdio.h>
#include <tchar.h>
int strlen_my1(char s[])
{
char* p = s;
while (*p++);
return p - s - 1;
}
int strlen_my2(char* s) {
char* p = s;
while (*p != '\0') {
p++;
}
return p - s;
}
int strcmp_my(const char str1[], const char str2[]) {
int i = 0;
while (str1[i] != '\0' && str2[i] != '\0' && str1[i] == str2[i])
i++;
return str1[i] - str2[i];
}
void strcpy_my(char* dest, char* src)
{
while (*dest++ = *src++);
}
void strcat_my(char* dest, char* src) {
while (*dest) dest++;
while (*src) {
*dest = *src;
dest++;
src++;
}
*dest = '\0';
}
void strchr_my(const char* str, int c, char** result) {
while (*str != '\0') {
if (*str == c) {
*result = (char*)str;
return;
}
str++;
}
}
void test_strchr_my() {
const char* str1 = "Hello, World!";
const char* str2 = "This is a test string.";
// Ïðèìåð 1: Ïîèñê ñèìâîëà 'o' â ñòðîêå "Hello, World!"
char* result1 = NULL;
strchr_my(str1, 'o', &result1);
if (result1 != NULL) {
printf("%ld\n", result1 - str1);
}
else {
printf("NULL\n");
}
// Ïðèìåð 2: Ïîèñê ñèìâîëà 'z' â ñòðîêå "This is a test string."
char* result2 = NULL;
strchr_my(str2, 'z', &result2);
if (result2 != NULL) {
printf("%ld\n", result2 - str2);
}
else {
printf("NULL\n");
}
}