세희홍 2022. 6. 22. 18:26

문자열 합치기

1.

#include <iostream>
using namespace std;
void inhastring(char* const a, const char* const b) {
	int i{ 0 };
	while (*(a + i) != '\0') {
		i++;
	}
	for (int j{ 0 }; *(b + j) != '\0'; j++) {
		a[i + j] = b[j];
	}
}
int main() {
	char a[100] = "abcd";
	char b[5] = "efgh";
	//const char* b = "efgh";
	inhastring(a, b);
	cout << a;
}

 

 

2.

#include <iostream>
using namespace std;
int inhaLen(char* a) {
	int i = 0, total = 0;

	while (a[i] != '\0') {
		total++;
		a++;
	}
	return total;
}
char* inhaString(char* a, char* b) {
	char c[40];

	for (int i = 0; i < inhaLen(a); i++) {
		c[i] = a[i];
	}

	for (int j = 0; j < inhaLen(b); j++) {
		c[j + inhaLen(a)] = b[j];
	}
	return c;
}
int main() {
	char a[20];
	char b[20];

	cin >> a >> b;

	for (int i = 0; i < inhaLen(a) + inhaLen(b); i++) {
		cout << inhaString(a, b)[i];
	}
	return 0;
}

 

 

3. 

#pragma warning(disable: 4996)
#include <cstring>
#include <string>
#include <iostream>
using namespace std;
void inhastring(char* front, const char* back) {
    size_t f = strlen(front);
    size_t b = strlen(back);
    int counter = 0;

    for (int i = f; i < f + b; i++) {
        front[i] = back[counter];
        counter++;
    }
}
int main() {
    char str1[20] = "abcde";
    const char* str2 = "fghij";

    inhastring(str1, str2);
    cout << str1 << "\n";
}