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.
Write a program to read in a sequence of characters one by one. Print out the characters in reverse. You should use a char[]. (Remember single quotes are used for char)
For example:
Please enter characters one by one: (Enter 0 to exit) h e l l o 0 You entered: hello. The reverse of that is olleh.
and this is currently my code
#include <iostream> #include <cstdlib> #include <cstdio> #include <ctime> #include <cmath> using namespace std; int main() { char entry[20];
[code]....
im just not sure how to set that value and still make the for loops work
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.
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??
I'm trying to write a function that takes a 32bit address and a data to store at this address.
I'm wanting to take the 32 bit memory address eg 0x12345678 and split it into 4 x 2 bytes 12, 34, 56, 78
then each of the 4 entries is at most a 256 entry array.eg FF, FF, FF, FF
So in this example, 0x12 points to 0x34 in the second array, which points to 0x56 in the third array, which finally points to 0x78 in the last array. This last array holds the actual data.
After successfully doing 0x12345678, say I might get a read for 0x1234AABB. So, the first and second pointers already exist, but I then have to create and write to dynamically created arrays.
The arrays need to have all entries set to NULL so that i know whether to follow the pointers to overwrite a previously entered value or create new arrays and pointers.
It all looks good and simple in the pseudo code I've written up but I'm having trouble coding it. I'm currently trying to deal with the first entry case, ie all array elements are NULL, but I'm getting confused with the pointers and creation of new arrays.
void cpu::store(unsigned int mem_add,unsigned int mem_val) { int first = (mem_address&4278190080)>>24; int second = (mem_address&16711680)>>16; int third = (mem_address&65280)>>8; int fourth= (mem_address&255);
If you did that bob[0] would not equal 11. All well and good right?
Now if you do this?
int sally = 33; test(sallay);
This wouldn't work at all you actually have to use
void test(int& test) { test += 10; }
how the memory addresses etc. are working here? I don't understand why you need to use & the reference operator if it's not an array? Why wouldn't that still work?
Alright, after what seems like forever I'm on the last stage of modifying my Payroll Program. This time I have to sort using pointers and I only have to sort the Net Pay category.
Using one of my earlier programs I've removed content from it until it's in a state where it runs but contains no sorting functions.
So now I've to a working program that lacks any kind of sorting and looks like this.
#include <iostream> #include <fstream>//file input output stream #include <iomanip> #include <string> using namespace std; //function prototypes int readalldata(long int id[], string fname[], string lname[], int hoursworked[], float hourlyrate[], int n);
[Code] .....
My hints for how to add pointers to the program are...
int *np,tmp; for (i=0,i<n; i++) np=&netpay[i]; //associating the netpay to np; temp=np[i];//storing the pointer to a temp
I've been fooling around trying to sort the Net Pay by pointers using these hints for a bit now and I'm still not getting it.
but I can't seem to extend this to 64-bits. I've tried #if __SIZEOF_POINTER__ == 4 enum constants { UNDEFDATA = 0xDeadBeef }; }; // enum constants #elif __SIZEOF_POINTER__ == 8 enum constants { UNDEFDATA = 0xDeadBeefDeadBeef }; #endif
with: if (ptr == UNDEFINED)
but get a message saying the '==' is undefined (I understand this)
Is there any way to setup so that I can change the size of my constants so that the comparisons will always work correctly? I've tried a 'typedef' but the compiler complains at
'typedef unsigned long long ADDR' // won't accept, and static const SlipCellBase * const TEMPORARY = (SlipCellBase&)0xFFFFFFFFFFFFFFFF; // illegal conversion