Автор | с++ |
Пользователь вводит с клавиатуры исходную строку, программа
должна записать в новую строку все символы которые встречаются
только один раз в исходной строке
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <stdlib.h>
using namespace std;
#define STR_LEN 50
int main() {
char src_str[STR_LEN];
char dst_str[STR_LEN];
cout<<"Enter the string\n>";
cin.get(src_str, STR_LEN-1);
char g;
char j;
int r;
int i=0;
int k=0;
int u=0;
for (i=0; i<STR_LEN-1;i++){
for(k=0;k<STR_LEN-1;k++){
if (src_str[i]==src_str[k]){
for(u=0; u<STR_LEN-1; u++){
dst_str[u]=src_str[i];
}
}
}
}
cout<<dst_str<<"\n";
cin>>r;
return 0;
}
что не так??? |
Надо спросить у программистов. |
Надо спросить у программистов. Я тоже так думаю. |
Спроси у программистов.
Да. |
что не так
Надо спросить у программистов |
Вроде все верно но выводит пустую строку |
для Кантарез:
ну ты спроси у программистов,они объяснят. |
scanf - не? |
Не это потоковой ввод |
при записи не встречающегося символа ты переписываешь каждый элемент новой строки.
for(u=0; u<STR_LEN-1; u++){
dst_str[u]=src_str[i];
}
тебе надо дописывать этот символ в конец результирующей строки и только один раз.
как вариант вместо куска кода вверху:
dst_str[u]=src_str[i];
u++ |
вместо cin>>r; логично использовать getch() библиотеки <conio>, те ожидание нажатия на клавишу. И выделяй память динамически! |