| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 349 人关注过本帖
标题:一个字符串移动的问题
只看楼主 加入收藏
文武两边随
Rank: 2
等 级:论坛游民
帖 子:40
专家分:39
注 册:2009-7-23
结帖率:90.91%
收藏
已结贴  问题点数:20 回复次数:1 
一个字符串移动的问题
函数功能是:把形参S所指字符串中下标为奇数的字右移到下一个奇数位置,最右边被移出字符串的字符饶回放到第一个奇数位置,下表为偶数的字符不动。
void fun(char *s)
{
 int i,n,k;
 char c;
 n=0;
 for(i=0;s[i]!='\0';i++)
   n++;
   if(n%2==0)
  k=n-1;
  else
  k=n-2;
  c=s[k];
  for(i=k-2;i>=1;i=i-2)
  s[i+2]=s[i];
  s[1]=c;



}
main()
 {
  char s[80]="abcdefgh";
  printf("\n The original string is: %s\n",s);
  fun(s);
  printf("\nThe result is :%s\n",s);


}
函数看的不是很懂......
请大虾帮忙解释下,谢谢......
我的意思是函数我一点也看不懂.......
搜索更多相关主题的帖子: 字符 
2009-07-31 19:05
soler
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:181
专家分:1077
注 册:2005-7-16
收藏
得分:20 
程序代码:
#include<stdio.h>

void fun(char *s,int n);

int main()
{
    char str[20]="abcdefghi";
    printf("%s\n",str);

    fun(str,20);
    printf("%s\n",str);
    return 0;

}

void fun(char *s,int n)
{
    int i,temp,counter;

    for(i=0;i<n;i++)
        if(*(s+i)=='\0')
        {
            counter=i-1;
            break;
        }
    if(counter%2==0)
        counter=counter-1;

    temp=*(s+counter);
    for(i=counter;i>=3;i=i-2)
    {
        *(s+i)=*(s+i-2);
    }
    s[1]=temp;

    printf("%s\n",s);
}
2009-07-31 20:03
快速回复:一个字符串移动的问题
数据加载中...
 
   



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

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