Why isn't this outputting?

Why isn't the total outputting in the last function? I need help,
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
#include <iostream>
#include <cstring>
using namespace std;

int countWords(char* one, int SIZE);
int addDigits();
void outputArrays(char* one, int SIZE);

int main()
{
    //first array and size
    const int SIZE = 100;
    char one[SIZE];
    
    char two[SIZE];
    
    //prompt to enter a sentence for the first array
    cout << "Enter a sentence of at least two words:" << endl;
    //get input for the first array  
    cin >> one;
    cout << endl << endl;
    
    
    //prompt to enter digits
   
    
    
    //use function strlen() to find length or number of sig chars in arrays
    
    
    //call the first function
    countWords(one, SIZE);
    
    int count;
    
    //call the second function
    addDigits();
    
    
    //call the output function
    outputArrays(one, SIZE);
    
    
    system("pause");
    return 0;    
}



//first function
int countWords(char* one, int SIZE) //char array/pointer, length of array
{
    int count = 0; //integer for the word-count, used as total
    
    while(*one != '\0')
    {
        if(*one == ' ')
        one++;   //increment the pointer
        count++; //increment the total
    }

    return count; //return the integer - number of words
}


//second function
int addDigits()
{
            
    
}



void outputArrays(char* one, int SIZE)
{
    cout << "The total number of words is: " << one; 
    
}


You are outputting the character string on line 77. It seems like you want to print the value being returned from the countWords() function.
hm. i tried that and it didn't do anything
Please show me how you attempted it so I can see if you made a mistake.
Edit: Also I think your algorithm for finding the number of words is incorrect. You only increment the pointer when you find a space, so it looks like you would get a nice infinite loop if you hit a non-space and non-null character.
Last edited on
1
2
3
4
5
6
7
8
9
10
11
12
13
int countWords(char* one, int SIZE) //char array/pointer, length of array
{
    int count = 0; //integer for the word-count, used as total
    
    while(*one != '\0')
    {
        if(*one == ' ')
        one++;   //increment the pointer
        count++; //increment the total
    }

    return count; //return the integer - number of words
}


This is a little bit of a problem.

The while loop will never exit, if you have something that isn't a ' ' or a null char. What if there are two spaces between words? What if words are seperated like this? (word)(other)?

If you would like to, you can simply switch the places of one++ and count++ and it will likely do what you want...

However keep in mind other delims.
Topic archived. No new replies allowed.