I have an assignment that asks me to write a program which reads all lines from a text file (one by another), reverses them and write to the same file. I also have a pseudocode with which I have to work and it is as follows:
While the end of the file has not been reached
pos1 = current get position Read a line. If the line was successfully read pos2 = current get position Set put position to pos1. Write the reversed line. Set get position to pos2.
I have tried many things and the code misses letters. Below you can see my code:
Code: #include <iostream> #include <fstream> #include <string> #include <cstdlib> using namespace std; int main() { fstream file; file.open("output.txt");
[code]....
This is the text with which I have to work:
Mary had a little lamb Its fleece was white as snow And everywhere that Mary went The lamb was sure to go.
And this is what I get:
bmal elttil a dah yraM Itswons sa etihw saw eceelf Antnew yraM taht erehwyreve d T.og ot erus saw bmal eh
Having some trouble with basic stuff while learning C. My purpose was to flip the pointing order, so it would point to the string from the end to the start. didn't work so well using **str as well.
My teacher has done a very poor job of teaching us anything this year. When he taught us for loops, he wrote one on the board, didn't explain any of it, then said now that you know for loops we can implement them in a code. but anyway, we need to write a code for converting a string to an int and all the examples i find on the internet use pointers but we aren't allowed to use those yet.
I have a little problem with one of my functions. The function purpose is to get a number (n) and create an array (size n) with pointers to strings (each string length is 20 chars) and i don't know why but during the debugging i get a <bad ptr> message and this message :
CXX0030: Error: expression cannot be evaluated
This is my function:
Code: char** getlist(int n) { int i=0; char **arr; arr=(char**)malloc(sizeof(char)*n); if (arr==NULL)
The snippet below (or similar) compiles and runs OK but I am using Visual Studio C++ compiler. Are the lines where .nameFirst and .nameLast assigned kosher in ANSI C?
Also I am concerned about the memory allocation for these string constants. Does the runtime system put them on the heap? It doesn't seem that they are really constants since they are not defined before runtime.
I am trying to alphabetize 3 different strings by comparing the first letter in each one. It will work for the first two names, but when I try to print out the third, I keep getting errors and I don't know why?
Code: #include <stdio.h> char personName(); int main() {
So I'm writing a function isPalindrome() that can accept a string as an argument, and copy from it only the alphabetic characters in the argument (original) string to another string named alpha_array which contains only the alphabetic characters. Then the function should be able to call the isPurePalindrome function to determine if alpha_array is an ordinary palindrome.
The problem is that when I call isPalindrome in main, the program crashes.
Here's the code I have for isPurePalindrome and isPalindrome:
Code:
/* 1 */ int isPurePalindrome( const char * sentence ) // Can accept strings, array and pointer arguments { // Declarations
i've been writing some code for an assignment and it is mostly about pointers and string manipulations. It runs but crashes and I think it might be from over- valuating some strings maybe not. I have written in check points to make sure each function passes through but quits at findFirstPath loop, I had kept running the program through as i added more and more code. It had stopped when I near finished I believed it to just be because I hadn't finished the functions I called.
Write the definition of a function reverse , whose first parameter is an array of integers and whose second parameter is the number of elements in thearray . The function reverses the elements of the array . The function does not return a value .
Code: void reverse(int a[], int num) { for ( int i=0; i <= num/2 ; i++){ int temp = a[i]; a[i] = a[num-i-1]; a[num-i-1] = temp; } }
This is supposed to be the answer but I'm not quite sure why this is. I understand everything up until the actual loop. For one, shouldn't "int i" be declared outside the loop (I thought perhaps this was an error in the solutions)?
The main thing that I do not understand is the conditional statement.
Code: i<=num/2;
I don't understand why the "num/2" is necessary here. Also I can't really remember but is there a command that actually reverses an array?
I'm trying to reverse 25 items that are in my array by using a For Loop and sending 2 of the numbers to a function at a time. The code I have right here, is not working at the moment, I cannot find the problem because i've been staring at my code for too long.
int farEnd = 24; for (int i = 0; i < 24; i++){ Swap(intArray[i], intArray[farEnd]); farEnd--; }
I was trying to reverse a linklist in reverse direction using the recursion. I was able to reverse n - 1 element but it is not printing the first one. Below is my code.
Code:
typedef struct linklist { int data; linklist *next; };
void add(int data,linklist **node) {
[code]....
This is happening since recursion is starting from second node, which is due to reason not printing the first one when recursion print values from stack once
node != NULL
Condition is met.
Currently I am using below statement for printing the first element;
reverse_recur(node); printf(" Print In Reverse Order %d ",node->data);
I am a little confused while comparing char pointers to integer pointers. Here is the problem:
Consider the following statement; char *ptr = "Hello"; char cArr[] = "Hello";
When I do cout << ptr; it prints Hello, same is the case with the statement cout << cArr;
As ptr and cArr are pointers, they should print addresses rather than contents, but if I have an interger array i.e. int iArr[] = {1, 2, 3};
If I cout << iArr; it displays the expected result(i.e. prints address) but pointers to character array while outputting doesn't show the address but shows the contents, Why??
This is what I am supposed to be doing with this problem: Read the integer values in the file "numbers.dat" and display
* them in reverse order (that is, display the last number in the * file first, the second-to-last second and so on). Use an array to * store the values. It is safe to assume that the file contains no * more than 100 values.
I have gotten far enough to read the file and display as an array, but it is displaying vertically rather than horizontally. So it is displaying 10 and a 1 on the first line then the 0 on the second line. Before I can work the reverse part out, I need it to display each number as 10 line 1 -235 line 2 so on and so forth.
This is my code so far:
void display_array_reversed() { ifstream fin ("numbers.dat"); if (!fin){ cerr << "Error opening file" << endl; exit(1);