1. c語言 字元替換
考,ACM題?
偶試試看先,等等發上來……
----------------------------------
完工:
#include <stdio.h>
#include <stdlib.h>
void main()
{
int count = 0, i = 0;
char str[31], ori, rpl, *p;
scanf( "%d", &count );
if( count<1 )
exit( -1 );
else {
for( ; i<count; i++ )
{
scanf( "%s %c %c", str, &ori, &rpl );
p = str;
while( *p!='\0' )
{
if( *p==ori ) *p=rpl;
*p++;
}
printf( "%s\n", str );
}
}
}
2. 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;
}
運行截圖:
3. c語言編程替換文件中字元串
方法和詳細的操作步驟如下:
1、第一步,依次單擊visual C ++ 6.0的「文件」-->「新建」-->「文件」-->「C++ Source File」選項,見下圖,轉到下面的步驟。
4. 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;
}
5. C語言寫一個替換字元串的程序
#include<stdio.h>
#include<malloc.h>
#include<memory.h>
#include<string.h>
char*replace(char*str,constchar*before,constchar*after)
{
if(strcmp(before,after)==0)
returnstr;
char*ps=str;
char*tmps;
intfl;
while(ps=strstr(ps,before))
{
tmps=(char*)malloc(ps-str+strlen(after)+1);
memcpy(tmps,str,ps-str);
*(tmps+(ps-str))=0;
strcat(tmps,after);
ps+=strlen(before);
tmps=(char*)realloc(tmps,strlen(tmps)+strlen(ps)+1);
fl=strlen(tmps);
strcat(tmps,ps);
strcpy(str,tmps);
ps=str+fl;
free(tmps);
}
returnstr;
}
intmain()
{
charstr[200]="1223344222333444";
printf("%s ",replace(str,"22","ABC"));
return0;
}
哦,不能用strstr和memcpy啊,改了下:
#include<stdio.h>
#include<malloc.h>
#include<string.h>
char*fstr(char*str,constchar*subs)
{
char*t=(char*)malloc(strlen(subs)+1);
char*ps=str;
inti;
intslen=strlen(subs);
*(t+slen)=0;
while(strlen(ps)>=slen)
{
for(i=0;i<slen;++i)
{
*(t+i)=*(ps+i);
}
if(strcmp(t,subs)==0)
{
free(t);
returnps;
}
++ps;
}
free(t);
returnNULL;
}
char*replace(char*str,constchar*before,constchar*after)
{
if(strcmp(before,after)==0)
returnstr;
char*ps=str;
char*tmps;
intfl,i;
while(ps=fstr(ps,before))
{
tmps=(char*)malloc(ps-str+strlen(after)+1);
for(i=0;i<ps-str;++i)
*(tmps+i)=*(str+i);
*(tmps+(ps-str))=0;
strcat(tmps,after);
ps+=strlen(before);
tmps=(char*)realloc(tmps,strlen(tmps)+strlen(ps)+1);
fl=strlen(tmps);
strcat(tmps,ps);
strcpy(str,tmps);
ps=str+fl;
free(tmps);
}
returnstr;
}
intmain()
{
charstr[200]="1223344222333444";
printf("%s ",replace(str,"22","ABC"));
return0;
}
6. C語言中如何替換一個字元串中的字元
include
<stirng.h>
void
strrpl(char
*s,
const
char
*s1,
const
char
*s2)
{
char
*ptr;
while
(ptr
=
strstr(s,
s1))
/*
如果在s中找到s1
*/
{
memmove(ptr
+
strlen(s2)
,
ptr
+
strlen(s1),
strlen(ptr)
-
strlen(s1)
+
1);
memcpy(ptr,
&s2[0],
strlen(s2));
}
return
s;
}
int
main()
{
char
*str1="abc",
*str2="a",
*str3="de",
Str0[100];
//如果字元串很長,100不夠則需要預留更大的空間。
strcpy(Str0,Str1);
strrpl(Str0,
str2,
str3);
printf("%s\n",
Str0);
return
0;
}
7. c語言如何將一個字元串里某些字元代替另外一個字元串來
用char *strstr(const char *str, const char *strSearch ); 函數找到源字元串中,你要替換的字元串。該函數返回要替換的字元串的指針。然後將替換的字元串賦值給該指針的位置。
8. 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=='