21 dec. 2011

editare char array

Se citeste de la tastatura un sir s, de lungime cel mult 80 de caractere. Numim umbra sirului s, sirul obtinut prin urmatoarele operatii asupra sirului s:
  1. transformarea tuturor literelor mari in litere mici si invers
  2. dublarea caracterului punct
  3. inlocuirea tuturor celorlalte caractere speciale cu caracterul '#'
  4. eliminarea tuturor cifrelor

#include <iostream>

using namespace std;

char str[100];

void replaceLetter(int i) {
 str[i] += (str[i] > 96) ? (-32) : 32;
}

void addPct(int i) {
 for (int j = 99; j > i; j--) {
  str[j] = str[j - 1];
 }
}

void removeDigit(int i) {
 for (int j = i; j < 99; j++) {
  str[j] = str[j + 1];
 }
}

int main() {
 //ab23Am.,t5F:-Ku
 cin >> str;

 int i = 0;
 while (str[i] != '\000' && i < 100) {
  if ((str[i] > 64 && str[i] < 91) || (str[i] > 96 && str[i] < 123)) {
   replaceLetter(i);
   i++;
  } else {
   if (str[i] == 46) {
    addPct(i);
    i += 2;
   } else {
    if (str[i] >= '0' && str[i] <= '9') {
     removeDigit(i);

    } else {
     str[i] = '#';
     i++;
    }
   }
  }
 }
 cout << str;
}

Niciun comentariu:

Trimiteți un comentariu