c語言字元串替換
⑴ 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語言:如何將字元串中指定的字元替換為另一個指定字元
需要准備的材料分別有:電腦、C語言編譯器。
1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。
⑶ C語言 指針,字元串替換
char
*replace(char
*source,
char
*sub,
char
*rep)
{
char
*result;
/*pc1
是復制到結果result掃描指針*/
/*pc2
是掃描
source
輔助指針*/
/*pc3
尋找子串時,為檢查變化中source是否和子串相等,是指向sub掃描指針
*/
/*找到匹配後,為了復制到結果串,是指向rep掃描指針*/
char
*pc1,
*pc2,
*pc3;
int
isource,
isub,
irep;
isub
=
strlen(sub);
/*對比串長度*/
irep
=
strlen(rep);
/*替換串長度*/
isource=
strlen(source);
/*源串長度*/
if(NULL==*sub)
return
strp(source);
/*申請結果串需要空間*/
result
=
(char
*)malloc(((irep>isub)?(float)strlen(source)/isub*irep+1:isource)*sizeof(char));
pc1
=
result;
/*為pc1依次復制結果串每個位元組作準備*/
while(*source
!=
NULL)
{
/*為檢查source和sub是否相等作準備,為pc2,pc3
賦初值*/
pc2
=
source;
pc3
=
sub;
/*
出循環(任)條件是:
*
*pc2
不等於
*pc3
(和子串不相等)
*
pc2
到源串結尾
*
pc3
到源串結尾
(此時,檢查了全部子串,source處和sub相等)
*****************************************************/
while(*pc2==*pc3
&&
*pc3
!=
NULL
&&
*pc2
!=
NULL)
pc2++,
pc3;
/*
如果找到了子串,進行以下處理工作*/
if(NULL==*pc3)
{
pc3
=
rep;
/*將替代串追加到結果串*/
while(*pc3
!=
NULL)
*pc1
=
*pc3;
pc2--;
source
=
pc2;
/*
檢查
source和sub相等循環結束後
*
pc2
對應位置是在
sub
中串結束符處該是源串中下個位置
*
將
source
指向其前面個
***************************************************/
}
/*如果沒找到子串,下面復制source所指位元組到結果串*/
*pc1
=
*source;
source;
/*
將source向後移個*/
}
*pc1
=
NULL;
result;
}
⑷ C語言 把字元串中的字母替換
char *p = "sdkfiimw";
因為你這句把指針指向了常量,而p是一個變數指針
兩個改法
一,申明一個字元數組,讓p指向這個數組
二,把p和s申明為指向常量的指針
const char *p = "sdkfiimw";
const char *s = p;
⑸ c語言如何把字元替換成字元串
簡單。
編個程,就行。
⑹ 求C語言替換字元串中某個字元的函數
#include "stdio.h"
#include "string.h"
void swap(char s[100],char a,char b)/*a為原來要替換的字元,b是替換後的字元*/
{
int i;
for(i=0;i<strlen(s);i++)
{
if(s[i]==a)
{
s[i]=b;
}
}
}
main()
{
char s[100];
char a,b;
int i;
printf("請輸入一個字元串:\n");
gets(s);
printf("\n請輸入要替換的字元和要替換後的字元,用逗號隔開:");
scanf("%c,%c",&a,&b);
swap(s,a,b);
puts(s);
}
⑺ c語言如何將一個字元串里某些字元代替另外一個字元串來
用char *strstr(const char *str, const char *strSearch ); 函數找到源字元串中,你要替換的字元串。該函數返回要替換的字元串的指針。然後將替換的字元串賦值給該指針的位置。
⑻ C語言字元串替換
效果圖:
#include<stdio.h>
intgetLen(chara[]){
intlen=0;
while(a[len]!='