Продублировать каждую букву слова на СИ
В рядок вводится имя, фамилия и отчество. Нужно взять имя, продублировать кажую букву, после чего засунуть обратно в исходную строку.
#define _CRT_SECURE_NO_WARNINGS
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char s[80];
int i;
printf("Enter a string: ");
gets(s);
for (i = 0; i < strlen(s); i++)
{
s[i] = s[i] * 2;
if (s[i] != " ")
{
break;
}
}
printf("%s", s);
return 0;
}
Ответы (1 шт):
алгоритм
выделить имя из строки, т.е. найти позицию первого разделителя ',' -
posсоздать новую строку размером не меньшим, чем
pos + len(text)вписать в новую строку буквы первого слова (по 2 раза), можно через функцию
strncat()вписать в новую строку часть старой строки, начиная с
pos
чтобы все сделать именно в одной строке - это в общем случае невозможно ибо новая строка большего размера и не факт, что в старой было выделено достаточно памяти
P.S.
касательно вашего кода:
s[i] = s[i] * 2;
это не питон, в c++ так буквы не удваиваются,в c++ все более примитивно:
new_str[j++] = old_str[i];
new_str[j++] = old_str[i];
ну или через strncat