Informatică, întrebare adresată de sikesjack1, 8 ani în urmă

Buna!
Cum as putea rezolva urmatoarea problema?
Dintr-un fisier se citeste un text. Textul contine cuvinte separate printr-un spatiu. Se va genera un nou text care va contine cuvintele ordonate alfabetic
Multunesc!

Răspunsuri la întrebare

Răspuns de CinevaFaraNume
1

#include <fstream>

#include <cstring>

#include <iostream>

#include <algorithm>

using namespace std;

bool cmp(char* a, char* b){

return strcmp(a,b) < 0;

}

int main(){

char s[256], m[256][10], *ptr[256]; // s - textul citit, m- vectorul de siruri, ptr - vectorul de pointeri(poate fi sortat)

int k = 0;

ifstream fin("fisier");

fin.getline(s, 256);

fin.close();

// se construieste matricea m (fiecare rand = un cuvant) si vectorul de pointeri

char *p = strtok(s, " ");

while(p != NULL){

strcpy(m[k], p);

ptr[k] = m[k];

k++;

p = strtok(NULL, " ");

}

// se sorteaza vectorul de pointeri

sort(ptr, ptr + k, cmp);

// se reconstruieste textul cu cuvintele in ordine alfabetica

s[0] = '\0';

for(int i = 0; i < k; i++){

strcat(s, ptr[i]);

strcat(s, " ");

}

cout << s;

}


CinevaFaraNume: Ca sa pot sa sortez vectorul de pointeri dupa
CinevaFaraNume: Si pe ala il folosesc mai tarziu cand reconstruiesc textul
sikesjack1: am inteles, multumesc! :)
sikesjack1: nu pot folosi matrici in functiile pentru siruri? de exemplu asa:
sikesjack1: char cuvinte[100][50];
sikesjack1: for (i=0;i {
if (strchr(v,cuvinte[i])) ///de cate ori gasesc o vocala in cuvant
{
cuvinte[i]='1'; ///in locul ei plasez cifra 1
}
}
sikesjack1: imi da eroarea asta:
sikesjack1: invalid conversion from 'char*' to 'int' [-fpermissive]|
CinevaFaraNume: Al doilea parametru al functiei strchr este char nu char*
sikesjack1: Multumesc!
Alte întrebări interesante