Я пытаюсь решить проблему, в которой я должен взять указатель на символ и сохранить электронное письмо, а затем передать этот указатель на функцию, чтобы я мог проверить, есть ли какие-либо специальные символов во входной строке. Вот кодКак передать символ указателю на функцию
#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)', поскольку ширина поля не включает завершающий нуль. Кроме того, почему вы печатаете строки с нулевым завершением по одному символу за раз? – Dmitri