當前位置:首頁 » 編程語言 » c語言換字函數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言換字函數

發布時間: 2023-08-09 12:02:06

c語言運用函數替換字元串中的數字求助大佬

#include <stdio.h>

#define N 80


/* 請在這里填寫答案 */

void f(char *c,char a)

{

for(;*c;c++)

if(*c>='0'&&*c<='9')

*c=a;

}


int main(void)

{

char c[N], a;

gets(c);

scanf("%c", &a);

f(c, a);

printf("%s", c);

return 0;

}

⑵ C語言字元串替換

C語言實現字元串替換函數:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
//字元串替換函數
/********************************************************************
* Function: my_strstr()
* Description: 在一個字元串中查找一個子串;
* Input: ps: 源; pd:子串
* Return : 0:源字元串中沒有子串; 1:源字元串中有子串;
*********************************************************************/
char * my_strstr(char * ps,char *pd)
{
char *pt = pd;
int c = 0;
while(*ps != '\0')
{
if(*ps == *pd)
{
while(*ps == *pd && *pd!='\0')
{
ps++;
pd++;
c++;
}
}else
{
ps++;
}
if(*pd == '\0')
{
return (ps - c);
}
c = 0;
pd = pt;
}
return 0;
}

/********************************************************************
* Function: memcpy()
* Description: 復制一個內存區域到另一個區域;
* Input: src: 源;
count: 復制位元組數.
* Output: dest: 復制目的地;
* Return : dest;
*********************************************************************/
void * memcpy(void * dest,const void *src,size_t count)
{
char *tmp = (char *) dest, *s = (char *) src;
while (count--)
*tmp++ = *s++;
return dest;
}

/********************************************************************
* Function: str_replace()
* Description: 在一個字元串中查找一個子串,並且把所有符合的子串用
另一個替換字元串替換。
* Input: p_source:要查找的母字元串; p_seach要查找的子字元串;
p_repstr:替換的字元串;
* Output: p_result:存放結果;
* Return : 返回替換成功的子串數量;
* Others: p_result要足夠大的空間存放結果,所以輸入參數都要以\0結束;
*********************************************************************/
int str_replace(char *p_result,char* p_source,char* p_seach,char *p_repstr)
{
int c = 0;
int repstr_leng = 0;
int searchstr_leng = 0;

char *p1;
char *presult = p_result;
char *psource = p_source;
char *prep = p_repstr;
char *pseach = p_seach;
int nLen = 0;

repstr_leng = strlen(prep);
searchstr_leng = strlen(pseach);

do{
p1 = my_strstr(psource,p_seach);

if (p1 == 0)
{
strcpy(presult,psource);
return c;
}
c++; //匹配子串計數加1;
printf("結果:%s\r\n",p_result);
printf("源字元:%s\r\n",p_source);

// 拷貝上一個替換點和下一個替換點中間的字元串
nLen = p1 - psource;
memcpy(presult, psource, nLen);

// 拷貝需要替換的字元串
memcpy(presult + nLen,p_repstr,repstr_leng);

psource = p1 + searchstr_leng;
presult = presult + nLen + repstr_leng;
}while(p1);

return c;
}
#define MAX 200
int main(void)
{
int i = 0;
char s[MAX] ={0}; //存放源字串
char s1[MAX]={0}; //存放子字串
char s2[MAX]={0}; //存放替換字串
char result_a[2000] = {0};//存放替換結果;
char *p,*ptm,*pr;
puts("Please input the string for s:");
scanf("%s",s);
puts("Please input the string for s1:");
scanf("%s",s1);
puts("Please input the string for s2:");
scanf("%s",s2);
ptm = s;
pr = result_a;
i = str_replace(pr,ptm,s1,s2);
printf("替換%d個子字元串;\r\n",i);
printf("替換後結果:%s\r\n",result_a);
system("pause");
}

⑶ C語言初學,字元替換

主函數的名字錯了。字母順序反了。

字元串是用數組存儲的。你的str變數定義錯了,應該是charstr[100];

函數調用的寫法也是錯的。調用函數只寫函數名和參數名。而且要寫在最後一個printf語句前面,等你輸入完成了才能調用函數。

strchange(str,c1,c2);

函數聲明則要寫在main函數的前面,不是裡面。

scanf();後要跟一句getchar();取走一個回車或空格字元,否則下一句scanf無法接收到你輸入的字元。

修改後可執行的完整代碼如下

#include<stdio.h>
char*strchange(char*str,charc1,charc2);
main(){
charc1,c2,str[100];
printf("請輸入字元串:");
scanf("%s",str);
getchar();
printf("請輸入要替換的字元:");
scanf("%c",&c1);
getchar();
printf("請輸入被替換為的字元:");
scanf("%c",&c2);
strchange(str,c1,c2);
printf("替換後的字元串為:%s",str);
}
char*strchange(char*str,charc1,charc2){
while(*str){
if(*str==c1){
*str=c2;
}
str++;
}
returnstr;
}

⑷ 在 C語言中字元串的替換如何實現的!

1、首先輸入代碼:

#include <string.h>

#include <stdio.h>

/**

* 參數:

* originalString[] :原始字元串

* key[] : 待替換的字元串

* swap[] : 新字元串

*/

void replace(char originalString[], char key[], char swap[]){

int lengthOfOriginalString, lengthOfKey, lengthOfSwap, i, j , flag;

char tmp[1000];

⑸ c語言 字元串替換函數

替換函數主要有strtr(),str_repalce()這兩個函數。
首先針對strtr函數第一種方式:
我們看看下面的舉例:
<?php
echo strtr("I Love you","Lo","lO");
?>
得到的結果是:
I lOve yOu
這個結果提醒我們:
1.strtr它是區分大小寫的
2.strtr的替換是很特殊的,你注意看後面那個yOu,中間的O被替換的,這顯然不是我們的本意。
再舉一個特殊例子,說明這個php的sttr函數的怪異
<?php
echo strtr("I Love you","Love","");
?>
結果是:
I Love you
什麼也不會改變,所以strtr需要注意的是:
3.不能被替換為空,也就是末位那個參數不能是空字元串,當然空格是可以的。
再次舉例strtr函數的另一種情況:
<?php
echo strtr("I Loves you","Love","lOvEA");
?>
結果是:
I lOvEs yOu
注意看第三個參數的A,在結果中並沒有出現。
4.我不建議用strtr以少換多。
ok,既然這個strtr函數挺麻煩為什麼還要用呢?
原因是,它的速度很快。據說,strtr 比 str_replace 快四倍。
5.能用strtr函數的時候一定要用。
第二種情況:
strtr(string,array)
6.strtr符合意願的使用方法
<?php
$table_change = array('you'=>'her sister');
echo strtr("I Love you",$table_change);
?>
結果為:
I Love her sister
7.小技巧:你想到替換什麼你就往數組加什麼
比如:
<?php
$table_change = array('you'=>'her sister');
$table_change += array('Love' => 'hate');
echo strtr("I Love you",$table_change);
?>
結果是:
I hate her sister
再次提醒那個Love 寫成love 是行不通的哦。
字元串取代。
語法: string str_replace(string needle, string str, string haystack);
返回值: 字元串
函數種類: 資料處理
內容說明
本函數將字元串 str 代入 haystack 字元串中,將所有的 needle 置換成 str。

下例將 %body% 以 black 取代
<?php
$bodytag = str_replace("%body%", "black", "<body text=%body%>");
echo $bodytag;
?>
格式:
[@str_replace("要替換的舊內容", "要取代原內容的新字元", $被替換內容的變數名)]
[@str_replace(array('舊1','舊2','舊3'), array('新1','新2','新3'), $被替換內容的變數名)]
[@str_replace(array('舊1','舊2','舊3'), '新內容', $被替換內容的變數名)]

實例:
多對一替換:想把內容欄位里所有的<p></p>標簽清除掉,替換成空 [@str_replace(array('<p>','</p>'), '', $Content)]
一對一替換:想把內容欄位里所有的<br>標簽換成<p> [@str_replace('<br>', '<p>', $Content)]
多對多替換:想把內容欄位里的<br>換成<br />, 同時<p>換<hr>,把</p>全清除 [@str_replace(array('<br>', '<p>','</p>'), array('<br />','<hr>',''), $Content)]

⑹ c語言:如何將字元串中指定的字元替換為另一個指定字元

需要准備的材料分別有:電腦、C語言編譯器。

1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。

⑺ c語言中完成一個自定義函數,替換指定字元串中的對應字元的代碼

BOOLstrrep(char*strRes,char*from,char*to)

{

inti;

BOOLflag=0;

char*p,*q,*ts;

for(i=0;strRes[i];++i)

{

if(strRes[i]==from[0])

{

p=strRes+i;

q=from;

while(*q&&(*p++==*q++));

if(*q=='')

{

ts=(char*)malloc(strlen(strRes)+1);//分配內存strcpy(ts,p);//復制字元串
strRes[i]='';

strcat(strRes,to);//連接字元串
strcat(strRes,ts);

free(ts);//釋放內存
flag=1;//成功
}

}

}

returnflag;/*返回是否成功*/

}

⑻ 字元交換C語言

實現字元交換可以藉助一個中間字元變數,比如要把字元變數a和b裡面的內容交換,可以藉助一個中間變數c,代碼如下:

intmain()
{chara='O',b='J',c;
c=a;a=b;b=c;}

這樣a和b裡面的內容就會交換了。

當然,如果你需要寫成一個函數,那必須傳地址,否則函數裡面的值換了,對函數外的變數沒有影響。如果是寫成函數要這樣:

intswap(char*a,char*b)
{charc;
c=*a;
*a=*b;
*b=c;}

然後在主函數里可以這么調用:

intmain()
{chara='O',b='J';
swap(&a,&b);}