fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. unsigned int str_len(const char* s)
  5. {
  6. if (!s) throw invalid_argument("nullptr in str_len()");
  7. unsigned int l = 0;
  8. while(*s++) ++l;
  9. return l;
  10. }
  11.  
  12. char* str_n_cat(char* dest, const char* source, unsigned int num)
  13. {
  14. if (!dest || !source) return nullptr;
  15. char * t = dest + str_len(dest);
  16. while(num-- && (*t++ = *source++));
  17. if (num == 0) *t = 0;
  18. return dest;
  19. }
  20.  
  21. int main()
  22. {
  23. for(int n = 0; n < 10; ++n)
  24. {
  25. char s[20] = "dest";
  26. char m[] = "source";
  27. cout << "[" << str_n_cat(s, m, n) << "]\n";
  28. }
  29. }
  30.  
Success #stdin #stdout 0.01s 5476KB
stdin
Standard input is empty
stdout
[dest]
[dests]
[destso]
[destsou]
[destsour]
[destsourc]
[destsource]
[destsource]
[destsource]
[destsource]