替換字元串中的字元串c語言-ag真人国际官网
1. c語言:如何將字元串中指定的字元替換為另一個指定字元
需要准備的材料分別有:電腦、c語言編譯器。
1、首先,打開c語言編譯器,新建一個初始.cpp文件,例如:test.cpp。
2. 在 c語言中字元串的替換如何實現的!
1、首先輸入代碼:
#include
#include
/**
* 參數:
* originalstring[] :原始字元串
* key[] : 待替換的字元串
* swap[] : 新字元串
*/
void replace(char originalstring[], char key[], char swap[]){
int lengthoforiginalstring, lengthofkey, lengthofswap, i, j , flag;
char tmp[1000];
3. c璇璦錛氬備綍灝嗗瓧絎︿覆涓鎸囧畾鐨勫瓧絎︽浛鎹涓哄彟涓涓鎸囧畾瀛楃
闇瑕佸噯澶囩殑鏉愭枡鍒嗗埆鏈夛細鐢佃剳銆丆璇璦緙栬瘧鍣ㄣ
1銆侀栧厛錛屾墦寮c璇璦緙栬瘧鍣錛屾柊寤轟竴涓鍒濆.cpp鏂囦歡錛屼緥濡傦細test.cpp銆
4. c語言如何實現字元之間的替換(打出一列順序,輸出按此順序輸出)
根據你的題意。
第一行輸入是26個字母的指定順序。
第二行輸入是內容字元串。
將內容字元串中的字母按照指定順序替換成對應26個字母原順序的字母。
規則:第一行輸入必須是26個小寫母,且不能重復。
替換後的字元中字母大小寫參照原字元串。
下面是代碼:
#include
#include
#define maxlen 100//第二行輸入字元串的最大長度
char *inputneworder();//輸入26個字母的新順序,必須為小寫字母,不能有重復。輸入成功返回字元串,失敗返回null
char getnewletter(char cin,char neworder[27]);//獲取字母對應neworder的原始字母,成功返回字母,失敗返回0
int main()
{
int i;
char *neworder;//輸入新字母順序
char inputstr[maxlen],cin;
while(1)
{
neworder=null;
while(!neworder)
neworder=inputneworder();
memset(inputstr,0,sizeof(char)*maxlen);
for(i=0;i
{
cin=getchar();
if(cin==10)//回車結束輸入
break;
if((cin>=65 && cin<=90)||(cin>=97 && cin<=122))//如輸入的是字母,對應新字母順序,找到原字母
inputstr[i]=getnewletter(cin,neworder);
else
inputstr[i]=cin;
}
if(i==maxlen)
while ((cin = getchar()) != eof && cin != ' ');
printf("%s ",inputstr);
}
return 0;
}
char *inputneworder()//輸入26個字母的新順序,必須為小寫字母,不能有重復
{
int i=0,j,flag=1;
static char neworder[27];
char c=0;
memset(neworder,0,sizeof(char)*27);
while(1)
{
if(neworder[25]!=0)
break;
c=getchar();
if(c<97 || c>122)//輸入小寫字母以外字元,標識錯誤
flag=0;
for(j=0;flag && j
if(neworder[j]==c)//輸入重復,標識錯誤
flag=0;
if(!flag)//錯誤,終止輸入
{
printf("輸入格式錯誤!必須為26個小寫字母,且不能有重復,請重新輸入。 ");
while ((c = getchar()) != eof && c != ' ');
return null;
}
neworder[i]=c;
i ;
}
while ((c = getchar()) != eof && c != ' ');
return neworder;
}
char getnewletter(char cin,char neworder[27])//獲取字母對應neworder的原始字母,成功返回字母,失敗返回0
{
static char letters[]="abcdefghijklmnopqrstuvwxyz";
char c;
int i,flag;//flag=1大寫字母,flag=0是小寫字母
if(cin>=65 && cin<=90)//輸入的是大寫字母
c=cin 32,flag=1;
if(cin>=97 && cin<=122)//輸入的是小寫字母
c=cin,flag=0;
for(i=0;i<26;i )
if(neworder[i]==c)//在新序列中匹配大寫字母或小寫字母
{
if(flag)
return letters[i]-32;
else
return letters[i];
}
return 0;
}
5. c語言 字元串替換replace() 求加每句注釋...........謝謝. ....沒分了,有分了追加....
#include
#include
#include
//參數,src 字元串源,sub想要替換的字元串,dst,用來替換的字元串
char*replace(char*src, char*sub, char*dst)
{
//記錄當前指針位置
int pos =0;
//記錄偏移
int offset =0;
//字元串長度
int srclen, sublen, dstlen;
//返回內容
char*pret = null;
//求得各字元串長度
srclen = strlen(src);
sublen = strlen(sub);
dstlen = strlen(dst);
//申請替換後的字元串緩沖區。用dst替換sub,所以應該是srclen-sublen dstlen, 1流出'\0'位置
pret = (char*)malloc(srclen dstlen - sublen 1);//(外部是否該空間)if (null != pret)
{
//strstr查找sub字元串出現的指針。該指針減去src地址。得到相對位置
pos = strstr(src, sub) - src;
//拷貝src字元串,從首地址開始,pos個字元。
memcpy(pret, src, pos);
//增加偏移位置到pos
offset = pos;
//拷貝dst到返回內容中。
memcpy(pret offset, dst, dstlen);
//重新定位偏移
offset = dstlen;
//拷貝src中,sub字元串後面的字元串到pret中
memcpy(pret offset, src pos sublen, srclen - pos - sublen);
//重新定位偏移
offset = srclen - pos - sublen;
//最後添加字元串結尾標記'\0'
*(pret offset) ='\0';
}
//返回新構造的字元串
return pret;
}
6. 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;/*返回是否成功*/
}