当前位置:首页 » 编程语言 » 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;
}