当前位置:首页 » 编程语言 » c语言中两个字符串互换的函数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言中两个字符串互换的函数

发布时间: 2023-06-01 15:34:13

c语言中怎样交换两个字符串

不同的情况做法是不同的。

1. 如果是字符数组,char a[50]="String A"迅枝昌; char b[50]="String B"; 则

#include<stdio.h>
voidstrexchg(char*a,char*b){
charc;
while(*a&&*b){
c=*a;*a=*b;*b=c;
a++;b++;
}
c=*a;*a=*b;*b=c;
if(*a)
do*++a=*++b;while(*b);
elseif(*b)
搭姿do*++b=*++a;while(*a);
}
intmain(){
chara[50]="StringA";charb[50]="StringB";
printf("BeforeExchange: StringAis"%s" StringBis"%s" ",a,b);
strexchg(a,b);
printf("AfterExchange: StringAis"%s" StringBis"%s" ",a,b);
return0;
}

2 如果两个都是字符指针变量,char *a="String A"; char*b="String B"; 则

#include<stdio.h>
voidstrexchg(char**a,char**b){
char*c;
c=*a;
*a=*b;
*b=c;
}
intmain(){
char*a="StringA";char*b="StringB";
printf("BeforeExchange: StringAis"%s" StringBis"%s" "亩扒,a,b);
strexchg(&a,&b);
printf("AfterExchange: StringAis"%s" StringBis"%s" ",a,b);
return0;
}

Ⅱ C语言,定义函数交换字符串数组

C语言中交换两个字符串需要借助strcpy函数或者使用自定义交换函数进行交换
如交换a,b数组中的字符串代码:

char a[10] = "abed", b[10] = "efg", t[10];strcpy(t, a);//a复制给tstrcpy(a, b);//b复制给astrcpy(b, t);//t复制给b

附:strcpy函数详情
原型声明:

char *strcpy(char* dest, const char *src);

头文件:

#include <string.h> 和 #include <stdio.h>

功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。

Ⅲ C语言:字符串交换函数

while((*str=*str1)!=NULL);//无拦返历限的把str1的头地址元素'a'赋予简搜str的头地址,是一个死世碧循环
//下面的执行不了,不过也是错的
while((*str1=*str2)!=NULL);
while((*str2=*str)!=NULL);

Ⅳ c语言 指针交换两个字符串

长度不同,两者存放单元的个数应当都大于 最长的字符串,否则交换以后 存不下,会出错。
#include <stdio.h>
#include <stdlib.h>
void jh(char *p1, char *p2){
char *t;
int i,L;
L = strlen(p1);
if (strlen(p2) > L) L = strlen(p2);
t = (char *) malloc(sizeof(char) * L);
strcpy(t,p1);strcpy(p1,p2);strcpy(p2,t); // 交换
}
main(){
char s1[100]="abc", s2[100]="1234567"; // 实际允许存放量必需足够大
printf("%s %s \n",s1,s2);
jh(s1,s2);
printf("%s %s \n",s1,s2);
return 0;
}

Ⅳ 编写用引用形参实现两个字符串交换的函数,用c,谢谢.

void swap(char *s,char *c) //用指针传址实现交换
{
int i,j,m;
char t;
for(i=0;s[i]!='\0';i++);// 你没告诉我能不能用strlen 函数 我就纯手编敬漏了
for(j=0;c[j]!='\0';i++);// 也可以用 i=strlen(s) ; j=strlen(c);
m=i>j?i:j;
for(i=0;i<m;i++) // m为最大值,s[m]==c[m]=='\0',结束符就可以不用换了吧= =||
{
t=s[i];
s[i]=c[i];
c[i]=t;
}
}
/亮槐烂/ 调用:
char a[100],b[100];
gets(a);
gets(b);
puts(a);
puts(b);
swap(a,b);
puts(a);
puts(b);

最后还有一个问题要注意一下,两个要交换的字符数组的长度应该相同,或则说明链最长的字符串串长要比最短的数组的长度要短才行

Ⅵ 字符交换C语言

实现字符交换可以借助一个中间字符变量,比如要把字符变量a和b里面的内容交换,可以借助一个中间变量c,代码如下:

intmain()
{chara='O',b='J',c;
c=a;a=b;b=c;}

这样a和b里面的内容就会交换了。

当然,如果你需要写成一个函数,那必须传地址,否则函数里面的值换了,对函数外的变量没有影响。如果是写成函数要这样:

intswap(char*a,char*b)
{charc;
c=*a;
*a=*b;
*b=c;}

然后在主函数里可以这么调用:

intmain()
{chara='O',b='J';
swap(&a,&b);}

Ⅶ 求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语言编程,使用指针做为函数参数,编写一个字符串交换函数,实现两个字符串内容的交换 急求,多谢!

#include<stdio.h>
voidswap(char*a,char*b){
intch;
while(*a&&*b)
ch=*a,*a=*b,*b=ch,a++,b++;
if(*a){
*b++=*a,*a++='';
while(*b++=*a++);
}
elseif(*b){
*a++=*b,*b++='';
while(*a++=*b++);
}
}

Ⅸ c语言 字符串替换函数

替换函数主要有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)]

Ⅹ c语言怎么把两个字符串交换位置

利用strcpy()函数。

chara[10]="abed",b[10]="efg",t[10];
strcpy(t,a);//a复制给t
strcpy(a,b);//b复制给a
strcpy(b,t);//t复制给b

函数功能是字符串复制,将第一个参数指定的字符串复制到第二个参数指定的位置
两个参数都是字符串首地址。
使用strcpy需要 #include<string.h>