c语言如何将一个字符串里某些字符代替另外一个字符串来 C语言中如何用一个字符串替换一个主串中的子串

C\u8bed\u8a00 \u5982\u4f55\u5c06\u4e00\u4e2a\u5b57\u7b26\u4e32\u7684\u5185\u5bb9\u4f20\u9012\u7ed9\u53e6\u4e00\u4e2a\u5b57\u7b26\u4e32\uff1f\u8be6\u89c1\u5185

#include#includestruct abc{ char aaa[10];}int main(){ struct abc mmm; char temp[10]="0903"; strcpy(mmm.aaa,temp);//C\u8bed\u8a00\u6807\u51c6\u5e93\u51fd\u6570\uff0c\u5c06\u7b2c\u4e8c\u4e2a\u53c2\u6570\u7684\u5185\u5bb9\u590d\u5236\u5230\u7b2c\u4e00\u4e2a\u53c2\u6570 return 0;}

\u53c2\u8003\u4ee5\u4e0b\u4ee3\u7801
#include
//oldstr\u539f\u5b57\u7b26\u4e32, newstr\u65b0\u5b57\u7b26\u4e32, oldsubstr\u539f\u5b57\u7b26\u4e32\u4e2d\u8981\u66ff\u6362\u7684\u5b50\u4e32, newsubstr\u65b0\u5b57\u7b26\u4e32\u4e2d\u66ff\u6362\u540e\u7684\u65b0\u5b50\u4e32
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++];
}
}
}

几天前回答过一样的问题,数字也可以的,我测试过了。长度不同也可以。
#include <stdio.h>
#include <string.h>
main()
{ char string[300],change[50],replace[50];
char s[300];
char *p,*q;
int i,lengthch,lengthre,flag,j=0;
printf("Input a string:");
gets(string);
printf("Input the string you want to be changed:");
scanf("%s",change);
printf("Input the string you want to replace:");
scanf("%s",replace);
lengthch=strlen(change);
lengthre=strlen(replace);
puts(string);
p=q=string;
for(;*p;p++)
{ if(*p==change[0])
{
flag=1;
q=p;
for(i=0;i<lengthch;i++)
{ if(*q!=change[i])
{ flag=0;
break;
}
else q++;
}
if(flag==1)
{ for(i=0;i<lengthre;i++)
s[j++]=replace[i];
p=q-1;
}
}
else s[j++]=*p;
}
s[j]='\0';
puts(s);
}

用char *strstr(const char *str, const char *strSearch ); 函数找到源字符串中,你要替换的字符串。该函数返回要替换的字符串的指针。然后将替换的字符串赋值给该指针的位置。

替换和被替换的字符串长度相等?代码:

#include <stdio.h>
#include <string.h>
int main()
{
char data[] = "abc1234567890efg";
char *from = "1234567890";
char *to = "0123456789";
char *p = strstr(data, from);
if(p){
memcpy(p, to, strlen(to));
}

printf("%s\n", data);
return 0;
}

  • C璇█闂:浠涓涓瓧绗︿覆閲鍒犳帀瀛楃b
    绛旓細define N 100 include "stdio.h"void main(){ int i;char a[N];printf("杈撳叆涓涓瓧绗︿覆锛歕n");gets(a);for (i=0;a[i]!='\0';i++)if (a[i]!='b')printf("%c",a[i]);printf("\n");}
  • c璇█ 濡備綍灏嗕竴涓瓧绗︿覆鐨勫墠n涓瓧姣嶅悗绉昏嚦灏,鍏朵粬鐨勬寜椤哄簭鍓嶇Щ?_鐧惧害...
    绛旓細//涓轰簡浣跨敤memcpy銆乻trlen绛瀛楃涓鍑芥暟\r\n#define N 5\r\nint main()\r\n{\r\n char a[] = "abcdefghijk";\r\n int i, j, m;\r\n char b[N+1] = {'\0'};//b灏嗘垚涓轰竴涓腑闂村偍瀛樻暟缁刓r\n memcpy(b, a, N);//鎶奱鐨勫墠N涓瓧绗澶嶅埗鍒癰涓紝瀛樿捣鏉...
  • c璇█涓浣鍦涓涓瓧绗︿覆閲鎼滅储鍑哄叾涓殑瀛楁瘝鍜屾暟瀛楀晩?璋㈣阿
    绛旓細int main(){ char str[1000]; //瀛楃涓 memset(str,1000,0);scanf("%s",str);char ch;int pos1(0),pos2(0);char s1[500],s2[500];memset(s1,500,0);memset(s2,500,0);for(int i=0;i<strlen(str);i++){ ch=str[i];if(ch<='9'&& ch>='0'){ //缁熻鏁板瓧涓暟 s1[...
  • 鍦C璇█涓,鎬庢牱鎵嶈兘浠涓涓瓧绗︿覆涓涓涓竴涓湴鑾峰彇瀛楁瘝,
    绛旓細鍦C璇█涓瓧绗︿覆鏈変袱绉嶈〃绀烘柟娉曚竴绉嶆槸瀛楃鎸囬拡 锛屼竴绉嶆槸瀛楃鏁扮粍銆俢onst char *str = "helllo world"; //瀛楃鎸囬拡鎸囧悜瀛楃涓 char str[] = "hello world"; //瀛楃鏁扮粍淇濆瓨瀛楃涓层傚瓧绗︽寚閽堬紝鍙互鐪嬩綔瀛楃鏁扮粍锛屼袱鑰呴兘鍙互鐢ㄧ淮鏁版潵涓涓竴涓鐨勬搷浣滃瓧绗︺傜ず渚嬪涓嬶細include <stdio.h>#include <...
  • C璇█鎶婁竴涓瓧绗︿覆閲鎵鏈夌殑澶у啓瀛楁瘝鎹㈡垚灏忓啓瀛楁瘝,灏忓啓瀛楁瘝鎹㈡垚澶у啓瀛...
    绛旓細/ 鍙互浣跨敤ctype.h涓殑4涓嚱鏁 islower锛宨supper鍒嗗埆鍒ゆ柇鏄惁鏄皬鍐欍佸ぇ鍐欙紝toupper锛宼olower鍒嗗埆杞寲鎴愬ぇ鍐欙紝灏忓啓 涓嬮潰缁欏嚭鏍蜂緥锛岃緭鍏瀛楃涓锛岃緭鍑鸿浆鍖栧悗鐨 / include<stdio.h> include<string.h> include<ctype.h> int main(){ char s[100];int i,len;gets(s);len=strlen(s);for(i=0;i<...
  • c璇█ 濡備綍灏嗕竴涓瓧绗︿覆鐨勫墠n涓瓧姣嶅悗绉昏嚦灏,鍏朵粬鐨勬寜椤哄簭鍓嶇Щ?_鐧惧害...
    绛旓細include <stdio.h> include <string.h>//涓轰簡浣跨敤memcpy銆乻trlen绛瀛楃涓鍑芥暟 define N 5 int main(){ char a[] = "abcdefghijk";int i, j, m;char b[N+1] = {'\0'};//b灏嗘垚涓轰竴涓腑闂村偍瀛樻暟缁 memcpy(b, a, N);//鎶奱鐨勫墠N涓瓧绗澶嶅埗鍒癰涓紝瀛樿捣鏉ワ紝浠ヤ緵鍚庨潰浣跨敤 m = ...
  • c璇█ 濡備綍灏嗕竴涓瓧绗︿覆鐨勫墠n涓瓧姣嶅悗绉昏嚦灏,鍏朵粬鐨勬寜椤哄簭鍓嶇Щ?_鐧惧害...
    绛旓細include <stdio.h> include <string.h>//涓轰簡浣跨敤memcpy銆乻trlen绛瀛楃涓鍑芥暟 define N 5 int main(){ char a[] = "abcdefghijk";int i, j, m;char b[N+1] = {'\0'};//b灏嗘垚涓轰竴涓腑闂村偍瀛樻暟缁 memcpy(b, a, N);//鎶奱鐨勫墠N涓瓧绗澶嶅埗鍒癰涓紝瀛樿捣鏉ワ紝浠ヤ緵鍚庨潰浣跨敤 m = ...
  • C璇█甯繖绾犻敊,杈撳叆涓涓瓧绗︿覆,灏嗗叾涓殑鑻辨枃瀛楁瘝鏀惧叆a鏁扮粍銆備緥濡,杈撳叆...
    绛旓細include <stdio.h>int main(void){char a[10]={0,0,0,0,0,0,0,0,0,0},b[10]={0,0,0,0,0,0,0,0,0,0},c=0;int i=-1,j=0,k=0;do{i++; scanf("%c",&a[i]);c=a[i];if((c>='A')&&(c<='Z')||(c>='a')&&(c<='z')){b[j]...
  • c璇█ 鎻忚堪 缂栧啓涓涓绋嬪簭瀹炵幇灏嗗瓧绗︿覆涓鐨勬墍鏈"you"鏇挎崲鎴"we"_鐧惧害...
    绛旓細str[i+1]='e';flag[n++]=i+2; //鍌ㄥ瓨u鐨勪綅缃紝渚夸簬灏唘瑕嗙洊 } } } } for(n=0;flag[n]!='\0';n++) //杩欓噷灏辨槸灏唘鍚庨潰鐨瀛楃鍚戝墠绉诲姩涓浣 { //鏇挎崲涓涓獃ou鍚庡洜涓哄悗闈㈢殑瀛楃鏁翠綋鍓嶇Щ浜 if(n==0)i=flag[n];else //鎵浠lag涓偍瀛樼殑u鐨勪綅缃氨瑕佸噺鍘1锛屾浛鎹袱涓...
  • C璇█:鏈変竴涓瓧绗︿覆,鍖呭惈n鍚勫瓧绗︺傚啓涓涓嚱鏁板皢姝瀛楃涓蹭腑浠庣m涓...
    绛旓細宸茶繍琛屾垚鍔熴俰nclude <stdio.h> include <string.h> define N 80 void fun(char a[N],int m){char *p1,b[N];int i,l;p1=a;i=1;l=0;while(i<m){i++;p1++;} while(*p1!='\0'){b[l]=*p1;p1++;l++;} b[l]='\0';puts(b);} main(){char a[N];int m,n;printf...
  • 扩展阅读:c语言字符长度怎么看 ... c语言回文数判断简单 ... c语言字符拼接在一起 ... c加加如何输入字符串 ... c语言 字符串反过来程序 ... c++ 定义字符串 ... c语言输入n个字符串 ... c#截取字符串中的一部分 ... c语言从键盘获取一个字符 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网