文字ポインタを取得して電子メールを格納し、そのポインタを関数に渡して特殊文字があるかどうかを確認する必要がある問題を解決しようとしています入力文字列内の文字。私は私の機能への文字ポインタが(検証)と、文字列を印刷しようとするたびに渡す は、ここでは、コード関数に文字ポインタを渡す方法
#include <stdio.h>
#include <stdlib.h>
void verify(char** em)
{
char *z = *em;
while(*z)
{
printf("%c", *z++);
}
while(*z != '\n')
{
if(*z == 'a')
{
printf("present");
*z++;
}
else
{
printf("not present");
}
}
}
int main()
{
int count = 0;
char *email = malloc(sizeof(char) * 100);
printf("enter the email id\n");
scanf("%100s", email);
while(*email)
{
printf("%c", *email++);
}
verify(&email);
return 0;
}
ですが、私は必要な出力を得ることはありません。
入力メールが有効かどうかを確認するにはどうすればよいですか? 私は '@'のインデックスを見つけようとしていて、@の前と@の前の文字をチェックしようとしていますが、配列ではないため '@'のインデックスをどのように格納できますか。
これ以外の処理を行う前に、コードを適切に書式設定してインデントする必要があります。 –
投稿の質問とは関係ありません。ちょうどあなたがメモリリークを起こしている可能性があります。 'malloc'の各部分について、あなたがそれを解放することを確認してください。 –
あなたの 'scanf()'はフィールドの幅に終端ヌルが含まれていないので 'scanf("%99s "、email)'でなければなりません。また、なぜ一度に1文字ずつヌル終了文字列を出力していますか? – Dmitri