你的代码中 *(--s)=*(++s);这句有问题,这句执行顺序是先执行两边的自加和自减操作,最后再执行赋值,所以实际上是把自己的值赋给了自己,所以字符串毫无变化,改成*(s) = *(s+1);就好了,其他语句不用动。
希望采纳
❷ C语言-删除字符串中指定的字符
一、问题描述:从键盘输入一个字符串给str和一个字符给c,删除str中的所有字符c并输出删除后的字符串str。
1、输入:第一行是一个字符串; 第二行是一个字符。
2、输出:删除指定字符后的字符串。
二、设计思路:
1、 同插入问题,定义两个字符数组a,b。以及标志删除位置的int型pos。
2、用gets函数输入数组a的值,并利用for循环将数组a 到 数组b。
3、利用for循环,令pos位的数组b元素赋值到a。
三、实现代码如下:
具体执行结果同上。
❸ 怎么在c语言字符数组中删除一个字符
字符数组中删除指定字符的方法:
输入一个字符串,以回车结束
输入指定字符
定义一个遍历字符串的下标变量和一个新的字符串下标变量
循环遍历字符串,
如果当前字符与指定字符不同,则将当前字符写入新下标位置,新下标+1
(相同则不处理)
遍历下标+1检测下一个
遇到字符串结束符,结束循环
循环结束后,新下标位置字符串结束符
输出新的字符串
参考代码:
❹ C语言如何实现删除字符串中的字符
C语言删除字符串中指定字符可以参考下面的代码:
#include<stdio.h>
int main
{
char * fun(char * s);
char arg[] = "hello.cgi?name1=value1&name2=value2";
printf("This value :%s ",fun(arg));
getchar();
return 0;
}
char * fun(char * s)
{
char *s1 = s; //s1指向字符串首地址
while ((*s != '?') && (*s != 0)) //字符不为结束符或者不为?,指向下一个字符
s++;
*s = 0; //将这个字符置为结束符
return s1;
};
(4)如何删除c语言字符扩展阅读:
C语言isupper()函数:判断一个字符是否是大写字母
C语言isspace()函数:判断一个字符是否是空白符
C语言isprint()函数:判断一个字符是否是可打印字符
C语言islower()函数:判断一个字符是否是小写字母
C语言ldexp()函数:返回x乘以2的exponent次方(次幂)的值
C语言ldiv()函数:求两个数的商和余数(针对long类型)
C语言ceil()函数:求不小于x的最小整数(向上取整)
C语言floor()函数:求不大于x的最大整数(向下取整)
double atof(char *nptr) 将字符串nptr转换成浮点数并返回这个浮点数
double atoi(char *nptr) 将字符串nptr转换成整数并返回这个整数
❺ c语言中怎样写删除字符串中某个字符的程序啊
c语言中书写删除字符串中某个字符的程序的具体操作步骤如下:
1、编写头函数,包括“#include <stdio.h>.”与“#include <string.h>.“。
❻ 怎样删除已经输出的字符 (C语言)
依据输出装置而定.
字符输出后,
已经储存或显示在输出装置内,
能否删除,
依据输出装置的能力而定.
就显示幕来说,
若支持ascii控制字符,
我们可以输出"bs
控制字符",
来告知显示幕删除前一个已输出的字符.
但若显示幕不支持(或许是模式不同),
就无法删除.
ascii的删除控制字符为
0x08,
printf的格式化,
为"\b".
也可以上网查ascii确认.
❼ c语言怎么删掉字符串的前几个字符
现在有一串字符需要输入,规定输入的字符串中只包含字母和*号。请用C语言编写程序,实现以下功能:除了字符串前后的*号之外,将串中其他的*号全部删除。
例如,假设输入的字符串为****A*BC*DEF*G********,删除串中的*号后,字符串变为****ABDEFG********
该问题需要对字符串进行操作,而在C语言中没有专门的字符串变量,因此如果需要将一个字符串存放在变量中,则必须使用字符数组,即使用一个字符型数组来存放一个字符串,数组中的每一个元素存放一个字符。
C语言如何删除字符串前后星号?
C语言/C++学习请加:556791282群内有更多资料哦!
算法分析
设置两个指向字符的指针变量t和f。先使用循环语句让t指针指向字符串中最后一个字符,而f指针指向字符串中第一个字符;再判断t和f指向的字符是否为“*”,如果为“*”,则t指针自减,f指针自增,直到遇到第一个不是的字符为止。
再定义一个函数fun()用于删除字符串中的“*”号,同时保留字符串前后的“*”号。
下面是完整的代码:
#include <stdio.h>
int fun(char *a, char *h, char *p)
{
int i, j;
/*删除指针h与p之间的所有“*”*/
for(i=0,j=0; &h[i]<p; i++)
if(h[i]!='*')
h[j++]=h[i];
/*将指针p至字符串尾部的所有字符前移*/
for(i=0; p[i]; i++,j++)
h[j]=p[i];
h[j]='\0'; /*在字符串尾部添加结束标志*/
return 0;
}
int main( )
{
char s[81], *t, *f;
printf("Enter a string :\n");
gets(s); /*输入字符串*/
t=f=s; /*用字符指针t、f指向串s*/
while(*t)
t++;
t--; /*将指针t定位到字符串中最后一个字符*/
while(*t == '*') /*指针t指向字符串中最后一个字符*/
t--;
while (*f == '*') /*指针f指向字符串中第一个字符*/
f++;
fun(s, f, t);
printf("The string after deleted:\n"); /*输出结果*/
puts(s);
return 0;
}
运行结果:
Enter a string :
****A*BC*DEF*G********
The string after deleted:
****ABCDEFG********
C语言学习其实并不难,只要你有决心,够努力,就会成功。想免费学习的可以加脱线下面得号!
❽ c语言程序中 从字符串s中删除指定的字符c.
c语言从字符串s中删除字符c:
#include<stdio.h>
/*从字符串S中删除字符c*/
voidsqueeze(char[],char);
intmain()
#include<stdio.h>
gets(s);
printf("输入需要删除的指定字符ch:
");
ch=getchar();
for(i=j=0;s[i]!='