| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 663 人关注过本帖
标题:我写的 怎么只交换了头一个字符
只看楼主 加入收藏
yjj598889481
Rank: 1
等 级:新手上路
帖 子:57
专家分:2
注 册:2011-4-4
结帖率:100%
收藏
 问题点数:0 回复次数:4 
我写的 怎么只交换了头一个字符
编写函数,要求使用指针作为函数的参数,交换任意输入的字符串a和字符串b中对应的元素。在main函数中输入字符串a和b,然后输出交换之后的a和b。
Enter string a: abcde123
Enter string b: uvwxy5

Exchange string a: uvwxy523
Exchange string b: abcde1


#define N 100
#include<stdio.h>
#include<conio.h>
#include<string.h>

char change(char *p,char *q)
{
   char temp;
   for(;*p!='\0'&&*q=='\0'||*p=='\0'&&*q!='\0';p++,q++)
     {

    temp=*p;
    *p=*q;
    *q=temp;
     }


}

void main()
{
   char a[N],b[N];
   char *p,*q;
   clrscr();
   p=a;  q=b;
   printf("Enter string a:");
   gets(a);
   printf("Enter string b:");
   gets(b);
   change(p,q);
   printf("\nExchange string a:%s\n",a[i]);
   printf("Exchange string b:%s",b[i]);
   getch();

}
搜索更多相关主题的帖子: change 字符串 元素 
2011-04-22 21:24
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
程序代码:
#define N 100
#include<stdio.h>
#include<conio.h>
#include<string.h>

char change(char *p,char *q)
{
   char temp;

   int i=strlen(p);
   int j=strlen(q);

 
  if(i<j)
  {
   for(;*p!='\0';p++,q++)
     {

      temp=*p;
      *p=*q;
      *q=temp;
     }
   }
  else
  {
    for(;*q!='\0';p++,q++)
    {
      temp=*q;
      *q=*p;
      *p=temp;
    }
   }

 *p='\0'; *q='\0';

}

void main()
{
   char a[N],b[N];
   char *p,*q;
   clrscr();
   p=a;  q=b;
   printf("Enter string a:");
   gets(a);
   printf("Enter string b:");
   gets(b);
   change(p,q);
   printf("\nExchange string a:%s\n",a);
   printf("Exchange string b:%s",b);
   getch();

}


[ 本帖最后由 qq1023569223 于 2011-4-22 22:17 编辑 ]

   唯实惟新 至诚致志
2011-04-22 22:15
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
for(;*p!='\0'&&*q=='\0'||*p=='\0'&&*q!='\0';p++,q++)    // 应该是 *p != 0 && *q != 0
                                                        // ps: '\0' == 0

楼主真幽默~

还有 2 楼也是错的

[ 本帖最后由 voidx 于 2011-4-23 01:37 编辑 ]
2011-04-23 01:35
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
#define N 100

void change(char *p,char *q)
{char temp;
int i,j;
i=strlen(p);
j=strlen(q);
if(i<j)
{for(int m=0;m<i;m++)
{temp=*p;
*p=*q;
*q=temp;
q++;p++;}}
else
{for(int m=0;m<j;m++)
{temp=*p;
*p=*q;
*q=temp;
q++;p++;}}}
main()
{
   char a[N],b[N];
   char *p,*q;
   p=a;  q=b;
   printf("Enter string a:");
   gets(a);
   printf("Enter string b:");
   gets(b);
   change(p,q);
   printf("\nExchange string a:%s\n",a);
   printf("Exchange string b:%s",b);

getch();}
2011-04-23 08:14
yjj598889481
Rank: 1
等 级:新手上路
帖 子:57
专家分:2
注 册:2011-4-4
收藏
得分:0 
回复 3楼 voidx
嘻嘻  谢谢哦
2011-04-24 18:06
快速回复:我写的 怎么只交换了头一个字符
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019212 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved