字符串拷贝
void my_strcpy1(char* src, char* dest)
{
int i = 0;
while (src[i])
{
dest[i] = src[i];
i++;
}
dest[i] = '\0';
}
void my_strcpy2(char* src, char* dest)
{
while (*src)
{
*dest = *src;
src++;
dest++;
}
*dest = '\0';
}
int main()
{
char* src = "hello";
char* dest[100] ;
my_strcpy2(src, dest);
printf("%s",dest);
return 0;
}
找字符位置
char* my_strch(char* src, char* ch)
{
while (*src)
{
if (*src == *ch)
{
return src;
}
src++;
}
return NULL;
}
int main()
{
char* src = "hello world";
char* ch = "o";
char* ret = my_strch(src, ch);
if(ret != NULL)
printf("%s", ret);
return 0;
}
去空格
void my_strnospace(char* src, char* dest)
{
while (*src)
{
if (*src != ' ')
{
*dest = *src;
dest++;
}
src++;
}
*dest = '\0';
}
int main()
{
char* src = "ni chou sha";
char dest[100];
my_strnospace(src, dest);
printf("%s",dest);
return 0;
}
字串个数
int str_times(char* str, char* substr)
{
int count = 0;
char* p = strstr(str,substr); //"llollollo"
while (p != NULL)
{
count++;
p += strlen(substr); //3
p = strstr(p,substr);//"llollo"
}
return count;
}
int main()
{
char str[] = "hellollollo";
char substr[] = "llo";
int ret = str_times(str,substr);
printf("%d",ret);
return 0;
}
字符串倒序
void str_inserse(char* str)
{
char* start = str;
char* end = str + strlen(str) - 1;
while (start < end)
{
char tmp = *start;
*start = *end;
*end = tmp;
start++;
end--;
}
}
int main()
{
char str[] = "helloworld"; //变量 如果拿指针创建就是常量
str_inserse(str);
printf("%s\n",str);
return 0;
}
判断回文
int str_inserse(char* str)
{
char* start = str;
char* end = str + strlen(str) - 1;
while (start < end)
{
if (*start != *end)
{
return 0; //不是回文
}
start++;
end--;
}
return 1; //回文
}
int main()
{
char str[] = "abccba"; //变量 如果拿指针创建就是常量
int ret = str_inserse(str);
if (ret == 1)
{
printf("回文");
}
else
{
printf("不是回文");
}
return 0;
}