重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
效果圖:
創新互聯專注為客戶提供全方位的互聯網綜合服務,包含不限于成都網站制作、成都做網站、豐鎮網絡推廣、成都小程序開發、豐鎮網絡營銷、豐鎮企業策劃、豐鎮品牌公關、搜索引擎seo、人物專訪、企業宣傳片、企業代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創新互聯為所有大學生創業者提供豐鎮建站搭建服務,24小時服務熱線:13518219792,官方網址:www.cdcxhl.com
代碼:
#includestdio.h
int?getLen(char?a[])?{
int?len?=?0;
while?(a[len]?!=?'\0')len++;
return?len;
}
int?find(char?a[],?char?b[],?int?idx)?{
int?la?=?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)return?idx;
}
return?-1;
}
int?main()?{
char?a[1024],?b[1024],?cmp[1025];
int?i?=?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("\n");
}
答題不易,如無疑問,覺得可以的話,采納一下
1、首先輸入代碼:
#include string.h
#include stdio.h
/**
* 參數:
* originalString[] :原始字符串
* key[] : 待替換的字符串
* swap[] : 新字符串
*/
void replace(char originalString[], char key[], char swap[]){
int lengthOfOriginalString, lengthOfKey, lengthOfSwap, i, j , flag;
char tmp[1000];
2、然后輸入:
//獲取各個字符串的長度
lengthOfOriginalString = strlen(originalString);
lengthOfKey = strlen(key);
lengthOfSwap = strlen(swap);
for( i = 0; i = lengthOfOriginalString - lengthOfKey; i++){
flag = 1;
//搜索key
for(j? = 0; j lengthOfKey; j ++){
if(originalString[i + j] != key[j]){
flag = 0;
break;
}
}
3、然后輸入:
//如果搜索成功,則進行替換
if(flag){
strcpy(tmp, originalString);
strcpy(tmp[i], swap);
strcpy(tmp[i + lengthOfSwap], originalString[i? + lengthOfKey]);
strcpy(originalString, tmp);
i += lengthOfSwap - 1;
lengthOfOriginalString = strlen(originalString);
}
}
}
4、然后輸入:
/**
* main function
*/
int main(){
char originalString[1000] = {"abcfffffabcfffffabcfffff"};
char key[] = {"abc"};
char swap[] = {"aabbcc"};
replace(originalString, key, swap);
printf("%s\n", originalString);
return 0;
}
5、這樣就完成了。
替換函數主要有strtr(),str_repalce()這兩個函數。
首先針對strtr函數第一種方式:
我們看看下面的舉例:
?php
echo strtr("I Love you","Lo","lO");
?
得到的結果是:
I lOve yOu
這個結果提醒我們:
1.strtr它是區分大小寫的
2.strtr的替換是很特殊的,你注意看后面那個yOu,中間的O被替換的,這顯然不是我們的本意。
再舉一個特殊例子,說明這個php的sttr函數的怪異
?php
echo strtr("I Love you","Love","");
?
結果是:
I Love you
什么也不會改變,所以strtr需要注意的是:
3.不能被替換為空,也就是末位那個參數不能是空字符串,當然空格是可以的。
再次舉例strtr函數的另一種情況:
?php
echo strtr("I Loves you","Love","lOvEA");
?
結果是:
I lOvEs yOu
注意看第三個參數的A,在結果中并沒有出現。
4.我不建議用strtr以少換多。
ok,既然這個strtr函數挺麻煩為什么還要用呢?
原因是,它的速度很快。據說,strtr 比 str_replace 快四倍。
5.能用strtr函數的時候一定要用。
第二種情況:
strtr(string,array)
6.strtr符合意愿的使用方法
?php
$table_change = array('you'='her sister');
echo strtr("I Love you",$table_change);
?
結果為:
I Love her sister
7.小技巧:你想到替換什么你就往數組加什么
比如:
?php
$table_change = array('you'='her sister');
$table_change += array('Love' = 'hate');
echo strtr("I Love you",$table_change);
?
結果是:
I hate her sister
再次提醒那個Love 寫成love 是行不通的哦。
字符串取代。
語法: string str_replace(string needle, string str, string haystack);
返回值: 字符串
函數種類: 資料處理
內容說明
本函數將字符串 str 代入 haystack 字符串中,將所有的 needle 置換成 str。
下例將 %body% 以 black 取代
?php
$bodytag = str_replace("%body%", "black", "body text=%body%");
echo $bodytag;
?
格式:
[@str_replace("要替換的舊內容", "要取代原內容的新字符", $被替換內容的變量名)]
[@str_replace(array('舊1','舊2','舊3'), array('新1','新2','新3'), $被替換內容的變量名)]
[@str_replace(array('舊1','舊2','舊3'), '新內容', $被替換內容的變量名)]
實例:
多對一替換:想把內容字段里所有的p/p標簽清除掉,替換成空 [@str_replace(array('p','/p'), '', $Content)]
一對一替換:想把內容字段里所有的br標簽換成p [@str_replace('br', 'p', $Content)]
多對多替換:想把內容字段里的br換成br /, 同時p換hr,把/p全清除 [@str_replace(array('br', 'p','/p'), array('br /','hr',''), $Content)]
改成這樣就行了
#includestdio.h
int?replace(char?a[]);
int?main()
{
char?a[20];
int?n;
scanf("%s",?a);
n?=?replace(a);
printf("%s?替換字符的個數:%d\n",?a,?n);
return?0;
}
int?replace(char?a[])
{
int?n=0;
int?i;
for?(i?=?0;?a[i]?!=?'\0';?i++)
{
if(a[i]=='t')?
{
n=n+1;
a[i]='e';
}
else?if(a[i]=='T')?
{
n=n+1;
a[i]='E';
}
}
return?n;
1、C語言中沒有提供字符串替換函數,網上能找到的類似函數也只是能替換一個,不能替換全部,工作中卻常常要用到這個功能,故實現一個函數。該函數所使用到的相關函數均是自己實現,沒有調用庫函數。
2、函數代碼如下:
/*descript:replace?str,返回一個替換以后的字符串,用完之后要free()
success:return?1
error:return?0
BUG:"select?*?from?tab?where?id=':a'?and?name?=':aa'",this?is?not?support,this?function?is?just?simple?str_replace?,not?support?all?SQL?language
*/
char?*replacestr(char?*strbuf,?char?*sstr,?char?*dstr)
{???????char?*p,*p1;
int?len;
if?((strbuf?==?NULL)||(sstr?==?NULL)||(dstr?==?NULL))
return?NULL;
p?=?strstr(strbuf,?sstr);???????//返回字符串第一次出現的地址,否則返回NULL
if?(p?==?NULL)??/*not?found*/
return?NULL;
len?=?strlen(strbuf)?+?strlen(dstr)?-?strlen(sstr);
p1?=?malloc(len);
bzero(p1,?len);
strncpy(p1,?strbuf,?p-strbuf);
strcat(p1,?dstr);
p?+=?strlen(sstr);
strcat(p1,?p);
return?p1;
}
#include stdio.h
#define N 80
/* 請在這里填寫答案 */
void f(char *c,char a)
{
for(;*c;c++)
? if(*c='0'*c='9')
? ? ? *c=a;
}
int main(void)
{
char c[N], a;
gets(c);
scanf("%c", a);
f(c, a);
printf("%s", c);
return 0;
}