Need help

Hi, I am having trouble with the following code. I'm teaching myself C++. Any assistance will be appreciated.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
  /*Case Manipulator

Write a program with three functions: upper, lower, and reverse. The upper function
should accept a pointer to a C-string as an argument. It should step through each
character in the string, converting it to uppercase. The lower function, too, should
accept a pointer to a C-string as an argument. It should step through each character in
the string, converting it to lowercase. Like upper and lower, reverse should also
accept a pointer to a string. As it steps through the string, it should test each character
to determine whether it is upper- or lowercase. If a character is uppercase, it should be
converted to lowercase. Likewise, if a character is lowercase, it should be converted to
uppercase.

Test the functions by asking for a string in function main, then passing it to them in
the following order: reverse, lower, and upper.*/
#include <iostream>
#include <cstring>
#include <cctype>
#include <iomanip>
using namespace std;


int upper(char *);
int lower(char *);
int reverse(char *);

int main()
{
    const int size = 40;
    char data[size];
    
    int upper_case, lower_case, value = 0;
    
    char *ptr = data;
    
    //String entered to be converted according the the function requirments
    cout <<"Enter a string here: " << endl;
    getline(cin, str);
    
    //Call uppercase function
    upper_case = upper(str);
    
    //Call lowercase function
    lower_case = lower(str);
    
    //Reverse value
    value = reverse(str);
    
    system ("pause"); //pause program
    
    return(0);
}

//
int upper(char str)
{
    int i = 1;
    int upper_case;
    
    while (i < str.length())
    {
          if(islower.at(i))
          {
              str.at(i+1) = toupper( str.at(i+1));
          }
          i++;
          //Display uppercase value
          cout <<"The uppercase values are: " << endl;
          cout << str;
          
    }
    
    //Display the data toupper
    cout <<"The toupper values are: " << endl;
    cout << str << endl;

    return upper_case;
}
    
//This function converts characters entered to lowercase
int lower(char str)
{
    int i = 1;
    int lower_case;
    
    
    //convert string to lowercase
    while (i < str.length())
    {
          if(isupper.at(i))
          {
               str.at(i+1) = tolower(str.at(i+1));
          }
          i++;
          
          //Display lowercase value
          cout <<"The lower case values are: " << endl;
          cout << str;
    }
  

    return lower_case;
    
    
}

//This function reverse the values
int reverse(char str)
{
    int value;
    int i,j, temp;

  for(i=0;i<(j/2);i++) 
  {
    temp   = str[i];
    str[i] = str[j];
    str[j] = temp; 
  }

    j--;  
    
    //Display the reversed value
    cout << str << endl;

    return value;
}

Last edited on
Describe what the problem is.

From what I see, you have misspelled <cctype> in line 18;
have used str instead of data in lines 38, 41, 44, 47;
have used std::getline instead of std::cin.getline in line 38
wrote function definition not as declared (char and char*);
have used std::string member functions (.length(), .at()) on c-strings. (instead of strlen(), []);
have tried to apply member selection operator to function (isupper.at(i)), you probably want isupper(str[i])

There probably are other errors I didn't noticed.
Last edited on
Thanks :)
Topic archived. No new replies allowed.