當前位置:首頁 » 編程語言 » c語言替換字元串

c語言替換字元串

發布時間: 2022-02-04 19:57:16

c語言如何將一個字元串里某些字元代替另外一個字元串來

用char *strstr(const char *str, const char *strSearch ); 函數找到源字元串中,你要替換的字元串。該函數返回要替換的字元串的指針。然後將替換的字元串賦值給該指針的位置。

⑵ 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語言字元串替換代碼

把你的代碼直接復制、粘貼,運行出來的結果里,字元串b並沒有變啊!

添加了幾句puts語句,用來顯示中間過程的字元串的狀態,如下:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
//替換某串
intmain()
{
chars[]={"abcdefcdff"};
chara[]={"cd"};
charb[4]={"123"};
chart[4];
char*ptr;
//s中的a都用b替代

while(ptr=strstr(s,a))
{
puts("STRING---b:");
puts(b);
puts("STRING---s:");
puts(s);
strcpy(t,ptr+strlen(a));
puts("STRING---b:");
puts(b);
puts("STRING---t:");
puts(t);
strcpy(ptr,b);
puts("STRING---ptr:");
puts(ptr);
strcpy(ptr+strlen(b),t);
puts("STRING---s:");
puts(s);
puts(" ");
}
puts("STRING---s:");
puts(s);
return0;
}

運行截圖:

⑷ C語言中如何替換一個字元串中的字元

include
<stirng.h>
void
strrpl(char
*s,
const
char
*s1,
const
char
*s2)
{
char
*ptr;
while
(ptr
=
strstr(s,
s1))
/*
如果在s中找到s1
*/
{
memmove(ptr
+
strlen(s2)
,
ptr
+
strlen(s1),
strlen(ptr)
-
strlen(s1)
+
1);
memcpy(ptr,
&s2[0],
strlen(s2));
}
return
s;
}
int
main()
{
char
*str1="abc",
*str2="a",
*str3="de",
Str0[100];
//如果字元串很長,100不夠則需要預留更大的空間。
strcpy(Str0,Str1);
strrpl(Str0,
str2,
str3);
printf("%s\n",
Str0);
return
0;
}

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

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

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

⑹ C語言中如何用一個字元串替換一個主串中的子串

參考以下代碼
#include <string.h>
//oldstr原字元串, newstr新字元串, oldsubstr原字元串中要替換的子串, newsubstr新字元串中替換後的新子串
void replace(char *oldstr, char *newstr, char *oldsubstr, char *newsubstr)
{
int i, j;
int nLen = strlen(oldstr);
int nLenSub = strlen(oldsubstr);
for(i=0, j=0; i<nLen;)
{
if(0 == strncmp(oldstr+i, oldsubstr, nLenSub))
{
strcat(newstr+j, newsubstr);
j += strlen(newsubstr);
i += nLenSub;
}
else
{
newstr[j++] = oldstr[i++];
}
}
}

⑺ c語言編程替換文件中字元串

方法和詳細的操作步驟如下:

1、第一步,依次單擊visual C ++ 6.0的「文件」-->「新建」-->「文件」-->「C++ Source File」選項,見下圖,轉到下面的步驟。

⑻ 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語言寫一個替換字元串的程序

#include<stdio.h>
#include<malloc.h>
#include<memory.h>
#include<string.h>
char*replace(char*str,constchar*before,constchar*after)
{
if(strcmp(before,after)==0)
returnstr;
char*ps=str;
char*tmps;
intfl;
while(ps=strstr(ps,before))
{
tmps=(char*)malloc(ps-str+strlen(after)+1);
memcpy(tmps,str,ps-str);
*(tmps+(ps-str))=0;
strcat(tmps,after);
ps+=strlen(before);
tmps=(char*)realloc(tmps,strlen(tmps)+strlen(ps)+1);
fl=strlen(tmps);
strcat(tmps,ps);
strcpy(str,tmps);
ps=str+fl;
free(tmps);
}
returnstr;
}
intmain()
{
charstr[200]="1223344222333444";
printf("%s ",replace(str,"22","ABC"));
return0;
}

哦,不能用strstr和memcpy啊,改了下:

#include<stdio.h>
#include<malloc.h>
#include<string.h>
char*fstr(char*str,constchar*subs)
{
char*t=(char*)malloc(strlen(subs)+1);
char*ps=str;
inti;
intslen=strlen(subs);
*(t+slen)=0;
while(strlen(ps)>=slen)
{
for(i=0;i<slen;++i)
{
*(t+i)=*(ps+i);
}
if(strcmp(t,subs)==0)
{
free(t);
returnps;
}
++ps;
}
free(t);
returnNULL;
}
char*replace(char*str,constchar*before,constchar*after)
{
if(strcmp(before,after)==0)
returnstr;
char*ps=str;
char*tmps;
intfl,i;
while(ps=fstr(ps,before))
{
tmps=(char*)malloc(ps-str+strlen(after)+1);
for(i=0;i<ps-str;++i)
*(tmps+i)=*(str+i);
*(tmps+(ps-str))=0;
strcat(tmps,after);
ps+=strlen(before);
tmps=(char*)realloc(tmps,strlen(tmps)+strlen(ps)+1);
fl=strlen(tmps);
strcat(tmps,ps);
strcpy(str,tmps);
ps=str+fl;
free(tmps);
}
returnstr;
}
intmain()
{
charstr[200]="1223344222333444";
printf("%s ",replace(str,"22","ABC"));
return0;
}

熱點內容
fastboot清理腳本 發布:2025-01-01 21:12:36 瀏覽:254
如何查看提款密碼 發布:2025-01-01 21:05:25 瀏覽:400
安卓登錄白屏怎麼處理 發布:2025-01-01 21:04:39 瀏覽:375
人工手搖演算法 發布:2025-01-01 21:04:36 瀏覽:620
java監控內存 發布:2025-01-01 21:03:53 瀏覽:460
伺服器雙ip橋接訪問 發布:2025-01-01 20:42:26 瀏覽:255
亞馬遜雲伺服器還原系統 發布:2025-01-01 20:37:29 瀏覽:237
hbc加密手柄 發布:2025-01-01 20:18:15 瀏覽:242
php過濾斜杠 發布:2025-01-01 20:17:59 瀏覽:43
wamp搭建虛擬伺服器 發布:2025-01-01 20:00:33 瀏覽:813