// ptrstr.cpp -- using pointers to srings
#include <isotream>
#include <cstring> // declare strle(), strcpy()
int main()
{
using namespace std;
char animal[20] = "bear"; // animal holds bear
const char * bird = "wren"; // bird holds address of string
char * ps; // uninitialized
cout << animal << " and"; // display bear
cout << bird << "\n"; // display wren
// cout << ps << "\n"; // may display garbage, may cause a crash
cout << "Enter a kind of animal: ";
cin >> animal; // ok if input < 20 chars
// cin >> ps; Too horrible a blunder to try; ps doesn't
// point to allocated space
ps = animal; // set ps to point to string
cout << ps << "!\n"; // ok, same as using animal
cout << "Before using strcpy():\n";
cout << animal << " at " << (int *) animal << endl;
cout << ps << "at" << (int *)ps << endl;
ps = new char[strlen(animal) + 1]; //get new storage
strcpy(ps, animal); // copy string to new storage
cout << "After using strcpy():\n";
cout << animal << " at " << (int *) animal << endl;
cout << ps << " at " << (int *) ps << endl;
delete [] ps;
return 0;
}
// ptrstr.cpp -- using pointers to srings
#include
#include
// declare strle(), strcpy()
int main()
{
using namespace std;
char animal[20] = "bear"; // animal holds bear
const char * bird = "wren"; // bird holds address of string
char * ps; // uninitialized
cout << animal << " and"; // display bear
cout << bird << "\n"; // display wren
// cout << ps << "\n"; // may display garbage, may cause a crash
cout << "Enter a kind of animal: ";
cin >> animal; // ok if input < 20 chars
// cin >> ps; Too horrible a blunder to try; ps doesn't
// point to allocated space
ps = animal; // set ps to point to string
cout << ps << "!\n"; // ok, same as using animal
cout << "Before using strcpy():\n";
cout << animal << " at " << (int *) animal << endl;
cout << ps << "at" << (int *)ps << endl;
ps = new char[strlen(animal) + 1]; //get new storage
strcpy(ps, animal); // copy string to new storage
cout << "After using strcpy():\n";
cout << animal << " at " << (int *) animal << endl;
cout << ps << " at " << (int *) ps << endl;
delete [] ps;
return 0;
}
<textarea readonly="readonly" style="margin: 0px; padding-top: 0px; padding-left: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: 12pt; line-height: inherit; font-family: inherit; overflow: auto; resize: vertical; border: 0px; position: fixed; left: -9999px; top: 0px;"></textarea><pre name="code" class="cpp">// ptrstr.cpp -- using pointers to srings#include <isotream>#include <cstring> // declare strle(), strcpy()int main(){ using namespace std; char animal[20] = "bear"; // animal holds bear const char * bird = "wren"; // bird holds address of string char * ps; // uninitialized cout << animal << " and"; // display bear cout << bird << "\n"; // display wren // cout << ps << "\n"; // may display garbage, may cause a crash cout << "Enter a kind of animal: "; cin >> animal; // ok if input < 20 chars // cin >> ps; Too horrible a blunder to try; ps doesn't // point to allocated space ps = animal; // set ps to point to string cout << ps << "!\n"; // ok, same as using animal cout << "Before using strcpy():\n"; cout << animal << " at " << (int *) animal << endl; cout << ps << "at" << (int *)ps << endl; ps = new char[strlen(animal) + 1]; //get new storage strcpy(ps, animal); // copy string to new storage cout << "After using strcpy():\n"; cout << animal << " at " << (int *) animal << endl; cout << ps << " at " << (int *) ps << endl; delete [] ps; return 0;}
// limits.cpp -- some integer limits
#include <iostream>
#include <climits>
int main()
{
using namespace std;
int n_int = INT_MAX;
short n_short = SHRT_MAX;
long n_long = LONG_MAX;
long long n_llong = LLONG_MAX;
cout << "int is " << sizeof n_int << " bytes." <<endl;
cout << "short is " << sizeof n_short << " bytes." << endl;
cout << "long is " << sizeof n_long << " bytes." << endl;
cout << "long long is " << sizeof n_llong << " bytes." << endl;
cout << endl;
cout << "Maximum values: " << endl;
cout << "int: " << n_int << endl;
cout << "short: " << n_short << endl;
cout << "long: " << n_long << endl;
cout << "long long: " << n_llong << endl << endl;
cout << "Minimum int value = " << INT_MIN << endl;
cout << "Bits per byte = " << CHAR_BIT << endl;
cin.get();
cin.get();
return 0;
}