Код не печатает символы в массиве - PullRequest
0 голосов
/ 21 февраля 2019

Я пытался решить простой алгоритм, который в основном проверяет данное письмо.Так что, если есть «.»или '+' в локальном имени, тогда все должно быть в порядке, и если оно имеет '.'или '+' в доменном имени (иначе после '@'), это недействительно.

Теперь я знаю, что мой метод не эффективен, это далеко не так.Но я просто хочу решить проблему на этом этапе.По какой-то причине, когда у меня есть следующий код, символы в моем newArr печатаются:

#include <stdio.h> 
#include <string.h>

int main() {
  char email[30] = "DanGitson@gmail.com";
  char newArr[30];
  int at = 0;
  for (int i = 0; i < 30; i++) {
    // get the characters after '@'
    if (at == 1) {
      newArr[i] = email[i];
      printf("%c", newArr[i]);
    }
    // if email[i] is equal to '@'
    if(email[i] == 64){
      at = 1;
    }
  }
}

Но когда у меня есть следующий код, это не так:

#include <stdio.h> 
#include <string.h>

int main() {
  char email[30] = "DanGitson@gmail.com";
  char newArr[30];
  int at = 0;
  for (int i = 0; i < 30; i++) {
    // get the characters after '@'
    if (at == 1) {
      newArr[i] = email[i];
    }
    // if email[i] is equal to '@'
    if(email[i] == 64){
      at = 1;
    }
  }
  for (int j = 0; j < 30; j++) {
    printf("%c", newArr[j]);
  }
}

В основномМой подход заключается в добавлении всех символов, следующих за символом «@».Другими словами, получите домен и проверьте, есть ли больше 2 '. И есть ли' + ', чтобы я мог проверить, является ли электронная почта действительной или нет.Кроме того, если у вас есть какие-либо предложения или отзывы о моем методе, я был бы признателен.

Спасибо, что прочитали это до сих пор, я жду ваших ответов!

...