接尾辞 接頭辞の最大長

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
seeker
記事: 1
登録日時: 7年前

接尾辞 接頭辞の最大長

#1

投稿記事 by seeker » 7年前

文字列pが与えられる.pの接尾辞(ただしp自身は除く)の中でpの接頭辞でもあるようなものの最大長を求めよ
出力例
入力 thirteenth
出力 2
入力 aabaabaab
出力 6
と言う問題を行っているのですが、わかりません。よろしくお願いします。めちゃくちゃなプログラムですが以下書いていたプログラムです。

#include<stdio.h>
#include<string.h>
char p[256];
int main(void) {
int i,n,j,c=0,p;

scanf("%s",p);
p=strlen(p)
for(i=0;i<=p-1;j--){
for(j=P;j>0;j--){
if(p==p[j])
count++;
}


printf("%d",c);
return 0;
}

かずま

Re: 接尾辞 接頭辞の最大長

#2

投稿記事 by かずま » 7年前

変数の宣言が無茶苦茶ですね。
p の宣言が 2個所もあり、しかも大文字の P を使う?
c を 0 に初期化して、その値の変更がどこにもない。
宣言なしに count を使う?

memcmp または strncmp を使っても構わないのなら、

コード:

#include <stdio.h>
#include <string.h>  // strlen, memcmp(strncmp でもよい)

int main(void)
{
	必要な変数を宣言

	文字列を p に入力
	n = strlen(p);
	for (i = 1; memcmp(p, p+i, --n); i++) ;
	n を表示
}
これを参考にしてプログラムが完成したら、
それを貼り付けて解決にしてください。

何か疑問点があったり、memcmp を使わない
やり方を知りたかったら、質問してください。

返信

“C言語何でも質問掲示板” へ戻る