#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* InputSymbol(char* Stri, char s)
{
int n = strlen(Stri);
char symbol='\0';
char* r = (char*)calloc(2 * n, 1);
int i, j = 0, k = 0;
for (i = 0; i < n; i++)
{
r[j++] = Stri[i];
k++;
if (k == 2)
{
r[j++] = symbol; //указанный символ
k = 0;
}
}
return r;
}
int main(int argc, char* argv[]) {
char ss;
char* S = &ss;
printf("Input = \n");
scanf("%s", &ss);
char symbl=0;
char* Symb = &symbl;
printf("Input = \n");
scanf("%s", &symbl);
char* R;
R = InputSymbol(S,Symb);
printf("%s\n", R);
free(R);
system("pause");
return 0;
}
char* InputSymbol(char* Stri);
R = InputSymbol(S,Symb);
char* InputSymbol(char* Stri, char* s)
{
int n = strlen(Stri);
char symbol = strlen(s);
, а что еще? char symbl=0;
char* Symb = &symbl;
printf("Input = \n");
scanf("%s", Symb);
char ss = 0;
char* S = &ss;
scanf("%s", S);
char InputSymbol(char* Stri, char* s)
{
int n = strlen(Stri);
char symbol = strlen(s);
char* r = (char*)calloc(2 * n, 1);
int i, j = 0, k = 0;
for (i = 0; i < n; i++)
{
r[j++] = Stri[i];
k++;
if (k == 2)
{
r[j++] = symbol; //указанный символ
k = 0;
}
}
r = realloc(r, j + 1);
return r;
}
int main(int argc, char* argv[]) {
char ss = 0;
char* S = &ss;
printf("Input = \n");
scanf("%s", &ss);
char symbl=0;
char* Symb = &symbl;
printf("Input = \n");
scanf("%i", &symbl);
char* R;
R = InputSymbol(S,Symb);
printf("%s\n", R); //ошибка
free(R);
system("pause");
return 0;
}
r[j++] = Stri[i];
char* InputSymbol(char* Stri, char s)
char symbol='\0';
без нуля пишет, что неинициализированная переменная, с нулем выдает только первые две буквы r[j++] = symbol;
. как и говорил в сообщении выше в таком виде строчка неинициализированная переменная char symbol;
char symbol='s';
Я посмотрел пример здесь https://coderoad.ru/46857642/%D0%9D%D0%B5%D0%B8%D0..., но теперь вместо вводимого символа всегда буква s char symbol;
. Я сейчас читаю книгу по Си и смотрю видеоуроки по темам. char* InputSymbol(char* Stri, char symbol)
все