Quellcode durchsuchen

corrected char * pbs

bastien vor 5 Monaten
Ursprung
Commit
b30e9c6165

+ 11 - 7
Module_00/ex01/includes/Contact.class.hpp

@@ -1,23 +1,27 @@
 #ifndef CONTACT_CLASS_H
 # define CONTACT_CLASS_H
 
+#include <iostream>
+
 class Contact {
 public:
 
-	char	*first_name;
-	char	*last_name;
-	char	*nickname;
-	char	*number;
+	std::string	first_name;
+	std::string	last_name;
+	std::string	nickname;
+	std::string	number;
 
 	Contact(void);
 	~Contact(void);
 
-	void	getContact(void) const;
-	void	setContact(char *secret, char *first_name, char *last_name, char *nickname, char *number);
+	void getContact() const;
+	void setContact(const std::string& secret, const std::string& first_name,
+					 const std::string& last_name, const std::string& nickname,
+					 const std::string& number);
 
 private:
 
-	char	*_secret;
+	std::string _secret;
 };
 
 #endif

+ 19 - 29
Module_00/ex01/srcs/Contact.class.cpp

@@ -1,4 +1,5 @@
 #include "Contact.class.hpp"
+#include <iostream>
 
 Contact::Contact(void)  {
 	return ;
@@ -9,34 +10,23 @@ Contact::~Contact(void) {
 }
 
 
-void Contact::setContact(char *secret, char *first_name, char *last_name, char *nickname, char *number) {
-	if (secret[0] == 0) {
-		secret[0] = 'N';
-		secret[1] = 'A';
-	}
-	this->_secret = secret;
-
-	if (first_name[0] == 0) {
-		first_name[0] = 'N';
-		first_name[1] = 'A';
-	}
-	this->first_name = first_name;
-
-	if (last_name[0] == 0) {
-		last_name[0] = 'N';
-		last_name[1] = 'A';
-	}
-	this->last_name = last_name;
-
-	if (nickname[0] == 0) {
-		nickname[0] = 'N';
-		nickname[1] = 'A';
-	}
-	this->nickname = nickname;
+void Contact::setContact(const std::string &secret,
+                         const std::string &first_name,
+                         const std::string &last_name,
+                         const std::string &nickname,
+                         const std::string &number) {
+	
+	this->_secret = secret.empty() ? "NA" : secret;
+	this->first_name = first_name.empty() ? "NA" : first_name;
+	this->last_name = last_name.empty() ? "NA" : last_name;
+	this->nickname = nickname.empty() ? "NA" : nickname;
+	this->number = number.empty() ? "NA" : number;
+}
 
-	if (number[0] == 0) {
-		number[0] = 'N';
-		number[1] = 'A';
-	}
-	this->number = number;
+void Contact::getContact() const {
+	std::cout << "First name: " << first_name << std::endl;
+	std::cout << "Last name: " << last_name << std::endl;
+	std::cout << "Nickname: " << nickname << std::endl;
+	std::cout << "Number: " << number << std::endl;
+	std::cout << "Secret: " << _secret << std::endl;
 }

+ 41 - 48
Module_00/ex01/srcs/main.cpp

@@ -6,66 +6,59 @@
 
 
 void	ft_search(Phonebook *Phonebook) {
-//	int cpt;
+	int cpt;
 
-//	cpt = 0;
-
-	std::cout << "     Index|First Nam.| Last Name|  Nickname";
-	//while (cpt < Phonebook->nb) {
-		std::cout << Phonebook->contact[0].first_name << "|";
-		std::cout << Phonebook->contact[0].last_name << "|";
-		std::cout << Phonebook->contact[0].nickname << "|";
-		std::cout << std::endl;
-	//	cpt++;
-	//}
+	cpt = 0;
+	std::cout << "     Index|First Nam.| Last Name|  Nickname" << std::endl;
+	while (cpt < Phonebook->nb) {
+		std::cout << std::setw(10) << cpt << "|"
+		  << std::setw(10) << Phonebook->contact[cpt].first_name.substr(0, 10) << "|"
+		  << std::setw(10) << Phonebook->contact[cpt].last_name.substr(0, 10) << "|"
+		  << std::setw(10) << Phonebook->contact[cpt].nickname.substr(0, 10)
+		  << std::endl;
+		cpt++;
+	}
 }
 
 void	ft_add(Phonebook *Phonebook) {
-	char	first_name[256];
-	char	last_name[256];
-	char	nickname[256];
-	char	number[256];
-	char	secret[256];
-	
-	bzero(first_name, 256);
-	bzero(last_name, 256);
-	bzero(nickname, 256);
-	bzero(number, 256);
-	bzero(secret, 256);
-	std::cout << "Enter First name : ";
-	std::cin >> first_name;
-	std::cout << "Enter Last name : ";
-	std::cin >> last_name;
-	std::cout << "Entre nickname : ";
-	std::cin >> nickname;
-	std::cout << "Enter number : ";
-	std::cin >> number;
-	std::cout << "Enter secret : ";
-	std::cin >> secret;
+	std::string	first_name;
+	std::string	last_name;
+	std::string	nickname;
+	std::string	number;
+	std::string secret;
 
-	if (Phonebook->nb < 8)
-		Phonebook->nb++;
-	if (Phonebook->cpt >= 8)
-		Phonebook->cpt = 0;
-	else {
-		Phonebook->cpt++;
-	}
-	Phonebook->contact[Phonebook->cpt].setContact(first_name, last_name, nickname, number, secret);
+	std::cout << "Enter First name : "; std::getline(std::cin, first_name);
+	std::cout << "Enter Last name : "; std::getline(std::cin, last_name);
+	std::cout << "Enter Nickname : "; std::getline(std::cin, nickname);
+	std::cout << "Enter Number : "; std::getline(std::cin, number);
+	std::cout << "Enter Secret : "; std::getline(std::cin, secret);
+
+	std::cout << "[DEBUG] first_name=" << first_name << std::endl;
+std::cout << "[DEBUG] last_name=" << last_name << std::endl;
+std::cout << "[DEBUG] nickname=" << nickname << std::endl;
+std::cout << "[DEBUG] number=" << number << std::endl;
+std::cout << "[DEBUG] secret=" << secret << std::endl;
+
+std::cout << "[DEBUG] Writing to contact index: " << (Phonebook->cpt % 8) << std::endl;
+
+	Phonebook->contact[Phonebook->cpt % 8].setContact(secret, first_name, last_name, nickname, number);
+	Phonebook->cpt++;
+	Phonebook->nb = Phonebook->nb == 8 ? 8 : Phonebook->nb + 1;
 }
 
 int main(void) {
 
-	char		str[256];
-	Phonebook	Phonebook;
+	std::string	cmd;;
+	Phonebook	phonebook;
 
 	while (true) {
 		std::cout << "enter a command : ";
-		std::cin >> str;
-		if (!strcmp(str, "ADD"))
-			ft_add(&Phonebook);
-		else if (!strcmp(str, "SEARCH"))
-			ft_search(&Phonebook);
-		else if (!strcmp(str, "EXIT"))
+		std::getline(std::cin, cmd);
+		if (cmd == "ADD")
+			ft_add(&phonebook);
+		else if (cmd == "SEARCH")
+			ft_search(&phonebook);
+		else if (cmd == "EXIT")
 			break ;
 	}
 	return 0;