广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 5654 个阅读者
 
<< 上页  1   2   3  下页 >>(共 3 页)
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
karen7710
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x9
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

不好意思,我真的想不出来要怎么比较>"< 表情
我目前有教到strcpy(), strcmp()可是不太会运用!
麻烦大大可以提示一下大概要怎么打~ 谢谢啰^^


献花 x0 回到顶端 [10 楼] From:欧洲 | Posted:2007-06-12 21:05 |
GNUGCC
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x11
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

// 储存输入的字串
char string_save[10][50];
// 储存 string_save 找到的字串
char find_string[100][50];
// 记录字串出现的笔数
int find_count[100];

void FindCompare(void)
{
  int i, j, k, v;
  for ( i = 0, v = 0; i < 10; i++ )
  {
    for ( j = 0, k = strlen(string_save)); j <= k; j++ )
      if ( string_save[j]) == 32 || j == k )
      {
        string_save[j] = 0;
        for ( int f = 0; f < 100; f++ )
          if ( strlen(find_string[f])) == 0 )
          {
            strcpy(find_string[f], string_save + v);
      find_count[f]++;
      break;
          }
          else if ( strcmpi(find_string[f], string_save + v) == 0 )
          {
            find_count[f]++;
      break;
          }      

          v = j + 1;
      }

      v = 0;
  }
}

上面的函式只负责从 string_save 阵列中找出字串重复
的次数, 要记得在你写的主程式内将输入的字串存在
string_save 阵列内, 输入的字串大小不要超过 49 个字元,
假如要输入的字串会很大的话请自行调整阵列大小...
如果程式看不懂的话再拿出来讨论吧... 祝你成功^^

如果程式写的不好的话请多多包含...欢迎指教^^


献花 x0 回到顶端 [11 楼] From:台湾中华电信HINET | Posted:2007-06-13 01:24 |
GNUGCC
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x11
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

因为 po 上去的时候发现有些字没有在里面所以做了更新 :

// 储存输入的字串
char string_save[10][50];
// 储存 string_save 找到的字串
char find_string[100][50];
// 记录字串出现的笔数
int find_count[100];

void FindCompare(void)
{
int i, j, k, v;
for ( i = 0, v = 0; i < 10; i++ )
{
  for ( j = 0, k = strlen(string_save[ i ]); j <= k; j++ )
    if ( string_save[ i ][ j ] ) == 32 || j == k )
    {
    string_save[j] = 0;
    for ( int f = 0; f < 100; f++ )
      if ( strlen(find_string[ f ]) == 0 )
      {
        strcpy(find_string[ f ], string_save[ i ] + v);
    find_count[f]++;
    break;
      }
      else if ( strcmp(find_string[ f ], string_save[ i ] + v) == 0 )
      {
        find_count[f]++;
    break;
      }    

      v = j + 1;
    }

    v = 0;
}
}


献花 x1 回到顶端 [12 楼] From:台湾中华电信HINET | Posted:2007-06-13 01:32 |
gamewalk
数位造型
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x18
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

楼上的GNUGCC大大...虽然你改了但是还是有一个地方被系统吃掉了....提醒你一下 希望别介意 表情
if ( string_save[ i ][ j ] ) == 32 || j == k )
{
string_save[j] = 0; <-----这里 应该是 string_save[ i ][ j ] 我想那个 [ i ] 又被吃掉了 我之前也遇过
for ( int f = 0; f < 100; f++ )
if ( strlen(find_string[ f ]) == 0 )
{
strcpy(find_string[ f ], string_save[ i ] + v);
find_count[f]++;
break;
}
else if ( strcmp(find_string[ f ], string_save[ i ] + v) == 0 )
{
find_count[f]++;
break;
}
v = j + 1;
}

其实GNUGCC大大的方法就可以了....不过看起来好像有点复杂 表情 ...如果逻辑不好的人可能很快就挂了... 像我就快挂了 表情


[ 此文章被gamewalk在2007-06-13 05:24重新编辑 ]


献花 x0 回到顶端 [13 楼] From:台湾永大数位动力公司 | Posted:2007-06-13 05:07 |
GNUGCC
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x11
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

呵呵^^昨天看了很久还是有漏网之鱼啊...感谢 gamewalk 大大的指教...感激不尽
在下的程式功力浅薄欢迎网上大大能提供更好的演算法解决这个问题...^^


献花 x0 回到顶端 [14 楼] From:台湾中华电信HINET | Posted:2007-06-13 07:34 |
gamewalk
数位造型
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x18
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用GNUGCC于2007-06-13 07:34发表的 :
呵呵^^昨天看了很久还是有漏网之鱼啊...感谢 gamewalk 大大的指教...感激不尽
在下的程式功力浅薄欢迎网上大大能提供更好的演算法解决这个问题...^^


其实只是我觉得一般这样使用的话会很容易自乱阵脚...但是GNUGCC大大却能运用自如... 表情

也许多加一些注解看起来就不会那么复杂了...不过楼主看得懂的话...那就不用了...
因为这又不是为我写得 表情

P.S.还有就是贴程式码用"插入代码"这个功能 , 应该就不会发生那种 [ i ] 被吃掉的问题了...
(虽然这么说但是我也常常忘记用)


献花 x0 回到顶端 [15 楼] From:台湾永大数位动力公司 | Posted:2007-06-13 17:43 |
karen7710
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x9
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

我加上我之前输入10个字串的程式后,好像出现错误不能跑,麻烦大大看看哪里出错!
复制程式
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void FindCompare(void);

int main(void)
{
char string_save[10][50];
char find_string[100][50];
int a,find_count[100];
 
    printf("输入十个字串\n"); 
      for(a=0;a<10;a++)
       {
           gets(string_save[a]); 
       }
     FindCompare();
     system("pause");
     return 0;   
}


void FindCompare(void)
{
char string_save[10][50];
char find_string[100][50];
int find_count[100];     
int i, j, k, v;
for ( i = 0, v = 0; i < 10; i++ )
{
  for ( j = 0, k = strlen(string_save[ i ]); j <= k; j++ )
    if ( string_save[ i ][ j ] ) == 32 || j == k )
    {
    string_save[i][j] = 0;
    for ( int f = 0; f < 100; f++ )
      if ( strlen(find_string[ f ]) == 0 )
      {
        strcpy(find_string[ f ], string_save[ i ] + v);
    find_count[f]++;
    break;
      }
      else if ( strcmp(find_string[ f ], string_save[ i ] + v) == 0 )
      {
        find_count[f]++;
    break;
      }     

      v = j + 1;
    }

    v = 0;
}
} 


献花 x0 回到顶端 [16 楼] From:欧洲 | Posted:2007-06-13 21:32 |
GNUGCC
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x11
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

char string_save[10][50];
char find_string[100][50];
int find_count[100];  

把上面的阵列放在函式外面,包括主程式和 FindCompare 函式都不要有阵列的宣告...
呼叫完 FindCompare 函式记得要在加上输出的程式列出搜寻结果...
或许可以先把阵列内的变数值先设为 0 确保资料不会有问题^^

在做测试的时候记得字串跟下一个字串要用空白隔开因为程式里有用到是否遇到空白字元 :

if ( string_save[ i ][ j ] ) == 32 || j == k )

代码 32 代表的是空白字元, 先这样试看看...^^


献花 x0 回到顶端 [17 楼] From:台湾中华电信HINET | Posted:2007-06-13 22:13 |
gamewalk
数位造型
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x18
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

好像又看到一个问题 表情
if ( string_save[ i ][ j ] ) == 32 || j == k ) <--里面string_save[ i ][ j ]前面 好像少了一个左括号" ( "


献花 x0 回到顶端 [18 楼] From:台湾永大数位动力公司 | Posted:2007-06-13 22:41 |
GNUGCC
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x11
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

的确...再次感恩 gamewalk 大大...
下面才是正确的...

if ( (string_save[ i ][ j ]) == 32 || j == k )

今天怎么搞的 ??? 连我自已也不知道...


献花 x0 回到顶端 [19 楼] From:台湾中华电信HINET | Posted:2007-06-13 23:11 |

<< 上页  1   2   3  下页 >>(共 3 页)
首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.055127 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言