廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 5639 個閱讀者
 
<< 上頁  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.093785 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言