当前位置:首页 » 编程语言 » 删除字符c语言指针详解
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

删除字符c语言指针详解

发布时间: 2022-04-13 22:33:31

c语言删除字符串中的字符。

一、问题描述:从键盘输入一个字符串给str和一个字符给c,删除str中的所有字符c并输出删除后的字符串str。

1、输入:第一行是一个字符串; 第二行是一个字符。

2、输出:删除指定字符后的字符串。

二、设计思路:

1、 同插入问题,定义两个字符数组a,b。以及标志删除位置的int型pos。

2、用gets函数输入数组a的值,并利用for循环将数组a 到 数组b。

3、利用for循环,令pos位的数组b元素赋值到a。

三、实现代码如下:

(1)删除字符c语言指针详解扩展阅读

gets()函数用来从标准输入设备(键盘)读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加''字符。其调用格式为:gets(s),其中s为字符串变量(字符串数组名或字符串指针)。

gets()函数读取到 (我们输入的回车)于是停止读取,但是它不会把 包含到字符串里面去。然而,和它配合使用的puts函数,却在输出字符串的时候自动换行。

gets(s) 函数中的变量s为一字符串指针。如果为单个字符指针,编译连接不会有错误,但运行后内存溢出错误。宽字符版本,当使用unicode宽字符文本时,使用这个函数 _getws();在C11标准中被删除,可用C标准库中的fgets代替.

⑵ 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;

};

(2)删除字符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语言删除字符串中的指定字符。 指针1为为字符串,指针2为指定字符。

intmain()
{
chars[100],k[100];
charc;
inti=0,j=0,sum=0;

printf("请输入字符串 ");
gets(s);

printf("请输入需要去除的字符 ");
scanf("%c",&c);

while(s[i]!='')
{
if(s[i]==c)
{
sum++;
}else
{
k[j]=s[i];
j++;
}
i++;
}
k[j]='';
printf("删除特殊字符个数=[%d] ",sum);
printf("删除后字符串=[%s] ",k);
}

⑷ C语言指针删除字符串

#include<stdio.h>
#include<string.h>
intmain()
{
charstr[]="ABCDEFGHIJK",*p=NULL,*p1=NULL;
intn,m,len=strlen(str);
printf("原字符串:%s ",str);
printf("从第n个字符开始的删除m个字符,请输入n,m的值:");
scanf("%d%d",&n,&m);
p=str+n-1;
*p=0;
p1=p+m;
strcat(str,p1);
len=len-m;
str[len]=0;
printf("删除后的字符串为:%s ",str);
return0;
}

⑸ C语言 指针 删除字符串的一部分 在线等

代码如下::

#include<stdio.h>

int del_substr(char *str,char *substr )
{
int count=0,count1=0,i,j=0,k;
char *s;
char *s1;
s=str;
while((*s)!='\0')//求源字符串的长度
{
count++;
s++;
}

s1=substr;
while((*s1)!='\0')//求子字符串的长度
{
count1++;
s1++;
}

s=str;
s1=substr;
//printf("%4d%4d\n",count,count1);
for(i=0;i<count;i++)
{

for(;j<count1;)
{
if(*(str+i)==*(substr+j))//字符串否匹配
{
j++;
break;
}

else//字符串不否匹配
{
j=0;
break;
}

}

if(j==count1)//说明找到要删除的字符串
{
//printf("i=%d\n",i);
for(k=i-count1+1;k<count-count1;k++)
str[k]=str[k+count1];
str[count-count1]='\0';

return 1;

break;

}
}

if(i>=count)//说明把源字符串遍历完了,都没有发现!!
return 0;

}

void main()
{

char str[50];
char substr[20];

printf("请输入源字符串和子字符串\n");
scanf("%s%s",str,substr);

if(del_substr(str,substr )==1)
{
printf("找到要删除的字符串\n");
printf("删除后的字符串为:%s\n",str);

}
else
printf(" 没有找到要删除的字符串!!!\n");

}

⑹ C语言 指针 从字符串中删除指定的字符。谁能告诉我下面代码的意思啊~~特别是 *(s++)=*q; *s=0;跪谢了~~~

我帮你改了一下,看下你现在是否能看懂
void fun(char s[],char c)

{
char *q=s;

for(q=s; *q; q++)
{
if(*q != c)
{
*s=*q;//赋值语句
s++;//指针向后移一位
}
}
*s=0;//字符串末尾结束标志
}

⑺ C语言 删除字符串中的指定字符'*',要求用指针,谢谢~

#include<stdio.h>

intmain()

charstr[100];

char*p,*q;

charc;

gets(str);

c=getchar();

for(p=str,q=str;*p!='\0';p++)//用指针*p去提取str中每一个元素,用指针*q去删除str中需要删除的元素

if(*p!=c)

*(q++)=*p;

*q=*p;

puts(str);

return0;

(7)删除字符c语言指针详解扩展阅读:

其它方法:

#include<stdio.h>

intmain()

charstr[100];

char*q;

charc;

inti;

gets(str);

c=getchar();

for(i=0,q=str;str[i]!='\0';i++)

if(str[i]!=c)

*(q++)=str[i];

*q=str[i];

puts(str);

return0;

⑻ C语言-删除字符串中指定的字符

一、问题描述:从键盘输入一个字符串给str和一个字符给c,删除str中的所有字符c并输出删除后的字符串str。

1、输入:第一行是一个字符串; 第二行是一个字符。

2、输出:删除指定字符后的字符串。

二、设计思路:

1、 同插入问题,定义两个字符数组a,b。以及标志删除位置的int型pos。

2、用gets函数输入数组a的值,并利用for循环将数组a 到 数组b。

3、利用for循环,令pos位的数组b元素赋值到a。

三、实现代码如下:

具体执行结果同上。