dポイントプレゼントキャンペーン実施中!

c言語初心者です。

電話番号を表示させたいのですが、
ハイフンと括弧、数字のみ表示できてそれ以外は、
表示できないようにしたいのですが、良い方法が考えつきません。
どのように制限したらよいでしょうか?
どなたか教えてください。

A 回答 (2件)

#include <stdio.h>


#include <string.h>

char *word = "0123456789-()";
char *word2 = "012345a6789-()";

int
check(char *str, int len)
{
int i, rtn = 0;

for(i=0; i<len; i++)
{
switch(str[i])
{
case '-':
case '(':
case ')':
break;
default:
if(str[i] < '0' || '9' < str[i])
rtn = -1;
}
}
return rtn;
}

int
main(int ac, char **av)
{
if(!check(word, strlen(word)))
printf("%s\n", word);


if(!check(word2, strlen(word2)))
printf("%s\n", word2);
else
printf("変な入力はだみ\n");

return 0;
}
    • good
    • 0
この回答へのお礼

参考になるソースを載せていただきありがとうございます。

なんとかやってにようと思います。

お礼日時:2009/12/14 11:21

>ハイフンと括弧、数字のみ表示できてそれ以外は、


>表示できないようにしたいのですが、良い方法が考えつきません。
表示元のデータを一文字ずつ確認し、「ハイフンと括弧、数字」だったら表示する。
質問内容からだと、このくらいの回答になります。

単純に推測しても
電話番号以外に住所等のデータもある?
あった手場合のデータの格納形式は?
そもそも、電話番号を含むデータはどうやって取得してる?
とか、考えることはいろいろあるので。
    • good
    • 0
この回答へのお礼

ありがとうございます。

とりあえずやってみます。

お礼日時:2009/12/14 11:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!