用最小的循环,写出从一个字符串中删除一个字符的函数
用最小的循环,写出从一个字符串中删除一个字符的函数。哥12行代码就能搞定,一个循环。想不想挑战一下 本帖最后由 追梦少年_66 于 2017-12-13 13:00 编辑
void deleteallchar(char *str, char findstr) {
int i = 0, j = 0;
while ((str =str) {
if (str != findstr) {
i++;
}
}
} //不损坏源字符串
char* delch(char* src, unsigned int srcLen, char findch)
{
char str;//栈空间,不能用于大弄字符串
for (int i = 0, j = 0; i < srcLen + 1; i++)
{
if (src != findch)
str = src;
}
return str;
}
//不保留源字符串
void delch(char* src, char findch){
int i = 0, j = 0;
while (src)
{
if (src != findch)
++j;
else
src = src;
}
} 删除第一个字符如hello world 变为hell world
删除所有字符如hello world 变为hell wrld 不使用系统的字符串库函数 一行代码搞定。。你需要12行? 小飞鸟 发表于 2017-12-13 11:58
一行代码搞定。。你需要12行?
哈哈哈,那就算啊字符吧 厉害了求看源码 #include <stdio.h>
#include <malloc.h>
#define STRMAX 1024
char * function(const char * str, char ch)
{
char * res = malloc(STRMAX);
int index = 0;
for (int i = 0; str; i++)
res == ch ? index : index++] = str;
res = 0;
return res;
}
int main(int argc, char * argv[])
{
char str = "Hello World!";
printf_s("%s\n", function(str, 'o'));
getchar();
return 0;
}
实现这功能的函数不是很简单的么。。。。。 感觉代码还能精简,不如楼主放代码吧
char a[] = "hello world";
char *b = a;
char *c = a;
while (*b!=0)
{
if (*b=='o')
{
b++;
}
else
{
*c++ = *b++;
}
}
*c = 0;
printf("%s", a); 本帖最后由 追梦少年_66 于 2017-12-13 13:04 编辑
不错不错,你这是删掉了所有的o
你的代码可以装逼为:
看下面
页:
[1]
2