C语言字符串的删除
如何删除字符串后面的*号,例如****C**prnfisf****#include<stdio.h>
int main()
{
char a,*p,*q;
gets(a);
p=q=a;
while(*p)
{
if(*p!='*')
{
*q++=*p;
}
p++;
}
*p='\0';
puts(a);
}
我写的代码,只能删除前面的和中间的,后面的*无法删除。 本帖最后由 Jackson2021 于 2022-1-12 10:30 编辑
逻辑存在问题,上面程序逻辑只是拿非 '*' 字符从头开始排列而已,非 * 字符数不够替换,因此后面的 * 依然存在 #include <stdio.h>
int main(){
char str, c;
int i = 0;
while((c = getchar()) != '\n') if(c != '*') str = c;
printf("%s", str);
return 0;
} Jackson2021 发表于 2022-1-12 10:29
逻辑存在问题,上面程序逻辑只是拿非 '*' 字符从头开始排列而已,非 * 字符数不够替换,因此后面的 * 依然 ...
多谢,给了我启发,已经改了。
#include<stdio.h>
int main()
{
char a,*p,*q;
gets(a);
p=q=a;
while(*p)
{
if(*p!='*')
{
*q++=*p;
}
p++;
if(*q='*')
{
*q='\0';
}
}
*p='\0';
puts(a);
} 来学习了
页:
[1]