| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 852 人关注过本帖
标题:asd123fgh5##43df 排列為123543asdfgh##df
只看楼主 加入收藏
wiseley747
Rank: 1
等 级:新手上路
帖 子:22
专家分:8
注 册:2012-8-16
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:3 
asd123fgh5##43df 排列為123543asdfgh##df
程序代码:
给定程序中,函数fun 的功能是:将形参s 所指字符串中的所有数字字符顺序
前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。
例如,s 所指字符串为:asd123fgh5##43df,
处理后新字符串为:123543asdfgh##df。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include<stdio.h>
#include<stdlib.h>

char *fun(char *s){
   int i, j, k, n;
   char *p, *t;
   n=strlen(s)+1; //計算字串長度
   t=(char*)malloc(n*sizeof(char)); //存放非數字字串
   p=(char*)malloc(n*sizeof(char));//存放數字字串
   j=0; k=0;
   for(i=0; i<n; i++){
   if(isdigit(s[i])) {    //如果是數字的話
   p[j]=s[i];             //存入p
   j++;}                  //指針加一
   else{                  //不是數字的話
     t[k]=s[i];             //存入t
     k++;                //指針加一
     }
   }

  for(i=0; i<k; i++)  //這裡看不懂
   p[j+i]= t[i];      //這裡看不懂
   p[j+k]=0;          //這裡看不懂 

  return p;

}

int main(){
  char s[80];
  printf("Please input: ");
  scanf("%s",s);
  printf("\nThe result is: %s\n",fun(s));
  system("pause");
  return 0;
}
for(i=0; i<k; i++)  //這裡看不懂
   p[j+i]= t[i];      //這裡看不懂
   p[j+k]=0;          //這裡看不懂

哪位前輩幫忙解釋一下
搜索更多相关主题的帖子: 字符串 color 
2012-08-27 16:56
chuanglan
Rank: 2
等 级:论坛游民
威 望:2
帖 子:91
专家分:29
注 册:2012-8-14
收藏
得分:3 
我类,Not前辈,不过这里很简单,就是将数字字符跟其他字符这两个字符串连接起来,你如果学过strcat这个函数就会明白了,over。
2012-08-27 18:09
chuanglan
Rank: 2
等 级:论坛游民
威 望:2
帖 子:91
专家分:29
注 册:2012-8-14
收藏
得分:2 
还有最后一句是将新的字符串来一个终结,因为每个字符串都是以'\0'结束的,而这里值给它赋了ASCII值,即0
2012-08-27 18:12
wiseley747
Rank: 1
等 级:新手上路
帖 子:22
专家分:8
注 册:2012-8-16
收藏
得分:0 
回复 2楼 chuanglan
謝謝拉 會意了
2012-08-28 09:15
快速回复:asd123fgh5##43df 排列為123543asdfgh##df
数据加载中...
 
   



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

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