當前位置:首頁 » 編程語言 » 刪除字元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。

三、實現代碼如下:

具體執行結果同上。