Error C2440: инициализация: невозможно преобразовать 'int' в 'char [100]' - C (СИ)
Формулировка задачи:
#include "stdafx.h"
#include <string.h>
const int max=100;
void strcat(char dest[], char src[])
{
int n=strlen(dest);
for(int i=0; i<n-1; i++)
dest[n+i]=src[i];
}
int main()
{
char str1[max]='Hello';
char str2[max]='world!';
strcat(str1,str2);
printf("%s",str1);
return 0;
}Решение задачи: «Error C2440: инициализация: невозможно преобразовать 'int' в 'char [100]'»
textual
Листинг программы
#include <string.h>
#include<stdio.h>
const int max=100;
void strcat(char dest[], char src[])
{
int n=strlen(dest);
for(int i=0; i<n-1; i++)
dest[n+i]=src[i];
}
int main()
{
char str1[max]="Hello";
char str2[max]="world!";
strcat(str1,str2);
printf("%s",str1);
getchar();
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек: iostream, string.h
- Объявление константы max, которая ограничивает размер массива
- Определение функции strcat, которая принимает два массива символов и объединяет их в один
- Вычисление длины строки dest с помощью функции strlen
- Цикл for, который копирует символы из src в dest, начиная с 0-го элемента до n-2, так как последний элемент уже записан в dest[n-1]
- Вызов функции strcat в функции main с массивами str1 и str2
- Вывод результата с помощью функции printf и получение символа новой строки с помощью функции getchar
- Возврат 0, что означает успешный конец работы программы