I am trying to make my simple strcat function for learning C++.
My functions prints okay, but my main prints garbage. What am I doing wrong?
I'm still pretty new to C++, any bit of simplification and corrections are greatly appreciated. Thanks!
#include <iostream>
using namespace std;
int strlen(char* str)
{
int len = 0;
for (int i = 0; str[i] != '\0'; ++i) {
++len;
}
return len;
}
char* strcat(char* dest, char* src)
{
const size_t len = strlen(dest) + strlen(src);
char cat[len];
for (int i = 0; dest[i] != '\0'; ++i) {
cat[i] = dest[i];
}
for (int i = strlen(dest), j = 0; src[j] != '\0'; ++i, ++j) {
cat[i] = src[j];
}
cat[len] = '\0';
cout << "strCat " << cat << endl;
return cat;
}
int main()
{
char c1[100], c2[100];
cout << "First string -> ";
cin >> c1;
cout << "Second string -> ";
cin >> c2;
cout << "Concatenated -> " << strcat(c1, c2) << endl;
}