[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
|
1-
101-
201-
この機能を使うにはJavaScriptを有効にしてください
|
さらみ1
84
:
名前とか無いよ、うん
:2008/07/01(火) 22:37:44 ID:5fh3Nsws0
#include<stdio.h>
#include<string.h>
#define MAXDATA 100
#define MAXTAB 512
#define MAXWORD 80
int len_tab[MAXDATA];
char name_tab[MAXTAB];
char *avlp=name_tab;
void put_tab(char *,int);
void prt_all(int n);
* 追加した宣言 */
void prt_all_a(int n);
int main()
{
int n=0,len;
char buf[MAXWORD];
while ((scanf("%s",buf)>0)&&(n<MAXDATA)) {
len=strlen(buf);
len_tab[n++]=len;
put_tab(buf,len);
}
prt_all(n);
/* ここから */
printf("------------------------\n");
prt_all_a(n);
/* ここまで追加 */
return 0;
}
void put_tab(char *cp, int len)
{
char *tabp;
tabp = avlp;
avlp += len;
while (len-- > 0)
*tabp++ = *cp++;
}
void prt_all(int n)
{
int i, j, len;
char *tabp;
tabp = name_tab;
for (i = 0; i < n; i++) {
len = len_tab[i];
printf("%4d%6d: ", i, len);
for (j = 0; j < len; j++)
putchar(*tabp++);
printf("\n");
}
}
/* 重複した分を1つにして表示する関数実装部 */
/* Linuxでは動かしてないのでどうなるかまでは分かりません */
void prt_all_a(int n)
{
int i, j, len;
int flag = 0, num = 0;
char data_tmp[MAXDATA][MAXWORD];
char *tabp;
tabp = name_tab;
for (i = 0; i < n; i++) {
len = len_tab[i];
for (j = 0; j < len; j++)
data_tmp[i][j] = *tabp++;
data_tmp[i][j] = '\0';
}
for(i = 0; i < n; i++) {
len = len_tab[i];
for(j = 0; j < i; j++) {
if(strcmp(data_tmp[i], data_tmp[j]) == 0) {
flag = 1;
break;
}
}
if(flag == 0) {
printf("%4d%6d: %s\n", num, len, data_tmp[i]);
num++;
}
flag = 0;
}
}
単語の重複を表示しないようにして文字数をカウントするんだったかな
まあ、これもあんまりスマートじゃない
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板