掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.26470

スペースの判断
投稿者---まいこ(2006/03/20 10:43:19)


Ctestが0バイトまたはスペース1バイト〜スペース4バイトまでならある処理を実行させるという処理をしたいのですが、
下記のような感じではできますが、もう少しスマートにできないものか考えております。
関数などは調べてみましたがないと思うのですが、
こういう方法のほかにご存知のかたご伝授くださいませ


if((strlen(Ctest)==0)||(strcmp(Ctest," ")==0)||(strcmp(Ctest.rTenNo1," ")==0)||(strcmp(Ctest.rTenNo1," ")==0)||(strcmp(Ctest.rTenNo1," ")==0))
{
 /*************処理**************/
}



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:スペースの判断 26471 まいこ 2006/03/20 10:44:50
<子記事> Re:スペースの判断 26477 nop 2006/03/20 13:00:19
<子記事> Re:スペースの判断 26479 REE 2006/03/20 13:35:44


No.26471

Re:スペースの判断
投稿者---まいこ(2006/03/20 10:44:50)


若干ソースが間違っていました。

if((strlen(Ctest)==0)||(strcmp(Ctest," ")==0)||(strcmp(Ctest," ")==0)||(strcmp(Ctest," ")==0)||(strcmp(Ctest," ")==0))
{
 /*************処理**************/
}



この投稿にコメントする

削除パスワード

No.26475

Re:スペースの判断
投稿者---kz3(2006/03/20 12:03:17)


>若干ソースが間違っていました。
>
>if((strlen(Ctest)==0)||(strcmp(Ctest," ")==0)||(strcmp(Ctest," ")==0)||(strcmp(Ctest," ")==0)||(strcmp(Ctest," ")==0))
>{
> /*************処理**************/
>}

スペース減ってます?

if((strlen(Ctest)==0)||(strcmp(Ctest," ")==0)||(strcmp(Ctest," ")==0)||(strcmp(Ctest," ")==0)||(strcmp(Ctest," ")==0))
( スマート == 読み易い )ではないと思いますが、
読み手にとって分かりやすければいいんじゃないかなぁと思いますけど、
それにしても strcmp() が4つも続いたんじゃ、冗長ですね。

基本的な方法だと比較対象を配列に入れてしまうことではないでしょうか?
あとはループ構文で順次比較すればOKです。






この投稿にコメントする

削除パスワード

No.26476

Re:スペースの判断
投稿者---かずま(2006/03/20 12:57:27)


スペースが全部ひとつで表示されていますよね。
投稿に失敗しているのに気づきませんか?

行頭のスペースは削除、途中の連続するスペースはひとつのスペースに
なるというのが HTML の基本です。

だから、「ソースの添付は「HTML変換ツール」で字下げ」という
注意事項があるのです。。
    if (strspn(Ctest, " ") <= 4)



この投稿にコメントする

削除パスワード

No.26477

Re:スペースの判断
投稿者---nop(2006/03/20 13:00:19)


>Ctestが0バイトまたはスペース1バイト〜スペース4バイトまでならある処理を実行させるという処理をしたいのですが、
>下記のような感じではできますが、もう少しスマートにできないものか考えております。

「Ctest」の宣言や定義がないので、
少々違うかもしれませんが、以下の様な感じでどうでしょう?

for( i=0; i<strlen(Ctest) && Ctest.rTenNo1[i]!=' '; i++ );

if( i<=4 )
{
    /* 処理 */
}



この投稿にコメントする

削除パスワード

No.26482

Re:スペースの判断
投稿者---nop(2006/03/20 15:18:52)


> for( i=0; i<strlen(Ctest) && Ctest.rTenNo1[i]!=' '; i++ );


訂正:
×Ctest.rTenNo1[i]!=' '
○Ctest.rTenNo1[i]==' '

「!=」で繰り返してどうするよ、オレ…orz


この投稿にコメントする

削除パスワード

No.26479

Re:スペースの判断
投稿者---REE(2006/03/20 13:35:44)


>Ctestが0バイトまたはスペース1バイト〜スペース4バイトまでならある処理を実行させるという処理をしたいのですが、
>下記のような感じではできますが、もう少しスマートにできないものか考えております。
>関数などは調べてみましたがないと思うのですが、
>こういう方法のほかにご存知のかたご伝授くださいませ

if(strlen(Ctest) < 5 && strspn(Ctest," ") == strlen(Ctest))
{
/* 処理 */
}
これで



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧