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

c語言字元串替換

發布時間: 2022-01-15 04:57:57

c語言如何把字元替換成字元串

簡單。
編個程,就行。

⑵ C語言字元串替換

效果圖:

#include<stdio.h>

intgetLen(chara[]){
intlen=0;
while(a[len]!='')len++;
returnlen;
}

intfind(chara[],charb[],intidx){
intla=getLen(a),lb=getLen(b),t=la-lb,i,f;
for(;idx<=t;idx++){
f=0;
for(i=0;i<lb;i++){
if(a[idx+i]!=b[i]){f=1;break;}
}
if(f==0)returnidx;
}
return-1;
}

intmain(){
chara[1024],b[1024],cmp[1025];
inti=0,j,la,lc;
scanf("%s",a);
scanf("%s",cmp);
scanf("%s",b);

la=getLen(a);
lc=getLen(cmp);

j=0-lc;
while(1){
j=find(a,cmp,j+lc);
if(j==-1){
while(i<la){
printf("%c",a[i++]);
}
break;
}
for(;i<j;i++)printf("%c",a[i]);
i+=lc;
printf("%s",b);
}
printf(" ");
}

答題不易,如無疑問,覺得可以的話,採納一下

⑶ 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 "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語言:如何將字元串中指定的字元替換為另一個指定字元

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

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

⑺ C語言中字元串的查找與替換

#include <stdio.h>
#include <stdlib.h>

#define SIZE 20 /* 查找單詞字元和輸入替換單詞少於20 */
#define MAXLEN 10000 /* 文章字元不大於10000 */

void main(void)
{
int i, j;
int flag; /* 用於標記匹配單詞 */
int countFlag; /* 用於檢查匹配計數 */
int countOne = 0; /* 記錄未改文章字元個數 */
int countTwo = 0; /* 記錄改後文章字元個數 */

char keyWords[SIZE]; /* 查找單詞 */
char Words[SIZE];/* 替換單詞 */
char strOne[MAXLEN]; /* 將未改文章的所有字元儲存在裡面 */
char strTwo[MAXLEN]; /* 將改後文章的所有字元儲存在裡面 */

FILE *fp;

printf("請輸入要查找的單詞: ");
gets(keyWords);

printf("請輸入要替換的單詞: ");
gets(Words);

if (NULL == (fp = fopen("Englishnet.txt", "rw")))/* 讀文件 */
{
printf("文件打開失敗!\n");
exit(1);
}

while (!feof(fp))/* 讀文件 */
{
strOne[countOne++] = fgetc(fp);
}

countOne--;/* 減去最後一個文件結束字元 */

for (i=0; i<countOne; i++)
{
if (keyWords[0] == strOne[i])/* 判斷查找單詞第一個字元是否匹配 */
{
if ((' ' == strOne[i-1]) || ('\n' == strOne[i-1]) || (0 == i))/* 1.檢查單詞前的一個字元 */
{
flag = 1;
countFlag = i + 1;

for (j=1; keyWords[j]!='\0'; j++)
{
if (keyWords[j] != strOne[countFlag++])/* 是否匹配 */
{
flag = 0;
break;
}
}

if ((' ' == strOne[countFlag]) ||
('\n' == strOne[countFlag]) ||
(EOF == strOne[countFlag]))/* 2.檢查單詞後的一個字元 */
{
if (1 == flag)/* 若匹配,則進行拷貝 */
{
i = countFlag-1;
for (j=0; Words[j]!='\0'; j++)
{
strTwo[countTwo++] = Words[j];
}
}
}
else/* 另外 */
{
strTwo[countTwo++] = strOne[i];
}
}
else/* 另外 */
{
strTwo[countTwo++] = strOne[i];
}
}
else/* 另外 */
{
strTwo[countTwo++] = strOne[i];
}
}
fclose(fp);

if (NULL == (fp = fopen("Englishnet.txt", "w")))/* 寫入文件 */
{
printf("文件打開失敗!\n");
exit(1);
}

for (i=0; i<countTwo; i++)/* 寫入文件 */
{
fputc(strTwo[i], fp);
}
fclose(fp);
}

請注意,在不同的運行軟體中讀取文件的語法有所不同,不同的就在於fopen 後面的「w」 「r」有的軟體支持」w+「 」r+「,注意區分!

⑻ 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語言編程替換文件中字元串

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

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