#include<iostream>
using std::cout;
using std::endl;
void ShowStr(const char *,int n = 0);
void PrintStr(const char *);
int main()
{
char str1[] = "biubiubiubiubiu";
char str2[] = "xxxx";
cout << "1:" << endl;
ShowStr(str1);
cout << "2:" << endl;
ShowStr(str2,10);
cout << "3:" << endl;
ShowStr(str1);
cout << "4:" << endl;
ShowStr(str2);
cout << "5:" << endl;
ShowStr(str1,1234);
return 0;
}
void ShowStr(const char *str, int n)
{
static int count = 0;
++count;
if (!n)
{
PrintStr(str);
}
else
{
for (int i = 0; i < count; ++i)
{
PrintStr(str);
}
}
}
void PrintStr(const char *str)
{
cout << str << endl;
}
#include<iostream>
#include<cstring>
using std::cout;
using std::endl;
struct CandyBar
{
char name[20];
double weight;
int heat;
};
void SetCandyBar(CandyBar &candy,
const char * name = "Millennium Munch",
double weight = 2.85,
int heat = 350);
void ShowCandyBar(const CandyBar &);
int main()
{
CandyBar candy;
SetCandyBar(candy);
ShowCandyBar(candy);
const char ch[] = "tangtang";
SetCandyBar(candy, ch, 10.11, 400);
ShowCandyBar(candy);
return 0;
}
void SetCandyBar(CandyBar &candy,const char * name,double weight,int heat)
{
strcpy_s(candy.name, 20, name);
candy.weight = weight;
candy.heat = heat;
}
void ShowCandyBar(const CandyBar &candy)
{
cout << "candyname:" << candy.name << endl
<< "candyweight:" << candy.weight << endl
<< "candyheat:" << candy.heat << endl;
}
#include<iostream>
#include<string>
using std::string;
void GetToupperStr(string &);
int main()
{
string str;
std::cout << "Enter a string (q to quit):";
while (getline(std::cin,str))
{
if (str != "q")
{
GetToupperStr(str);
std::cout << str << std::endl;
std::cout << "Next string (q to quit):";
}
else
{
std::cout << "Bye" << std::endl;
break;
}
}
return 0;
}
void GetToupperStr(string &str)
{
for (size_t i = 0; i < str.size(); ++i)
{
str[i] = toupper(str[i]);
}
}
#include<iostream>
using namespace std;
#include<cstring>
struct stringy
{
char * str;
int ct;
};
void set(stringy &,const char *);
void show(const stringy &, const int n = 1);
void show(const char *, const int n = 1);
int main()
{
stringy beany;
char testing[] = "Reality isn't what it used to be.";
set(beany, testing);
show(beany);
show(beany, 2);
testing[0] = 'D';
testing[1] = 'u';
show(testing);
show(testing, 3);
show("Done!");
delete [] beany.str;
beany.str = NULL;
beany.ct = 0;
return 0;
}
void set(stringy &s, const char *str)
{
int len = strlen(str);
s.str = new char[len + 1];
strcpy_s(s.str, len + 1, str);
s.ct = len;
}
void show(const stringy &s, const int n)
{
for (int i = 0; i < n; ++i)
{
std::cout << s.str << std::endl;
}
}
void show(const char *str, const int n)
{
for (int i = 0; i < n; ++i)
{
std::cout << str << std::endl;
}
}
#include<iostream>
using namespace std;
const int len = 5;
template<typename T>
T max5(const T *);
int main()
{
int intList[len] = { 1,2,3,4,5 };
cout << max5(intList) << endl;
double doubleList[len] = { 1.01,2.03,22.2,102.001,1.02 };
cout << max5(doubleList) << endl;
return 0;
}
template<typename T>
T max5(const T * str)
{
T maxValue = str[0];
for (int i = 1; i < len; ++i)
{
if (str[i] > maxValue)
{
maxValue = str[i];
}
}
return maxValue;
}
#include<iostream>
using namespace std;
template<typename T>
T maxn(T * str,int len);
template <>
char * maxn(char * str[], int len);
int main()
{
int intList[6] = { 1,2,5,6,3,4 };
cout << maxn(intList, 6) << endl;
double doubleList[4] = { 1.01,2.03,22.2,1.02 };
cout << maxn(doubleList, 4) << endl;
char * strList[5] = { "qaq","wwwwww","quq","qvq","qwq" };
cout << maxn(strList, 5) << endl;
return 0;
}
template<typename T>
T maxn(T * str,int len)
{
if (len < 0)
{
return *str;
}
T maxValue = str[0];
for (int i = 1; i < len; ++i)
{
if (str[i] > maxValue)
{
maxValue = str[i];
}
}
return maxValue;
}
template<>
char * maxn(char *str[],int n)
{
char * p = NULL;
int maxLen = -1;
for (int i = 0; i < n; ++i)
{
int nTempLen = strlen(str[i]);
if (nTempLen > maxLen)
{
maxLen = nTempLen;
p = str[i];
}
}
return p;
}
#include<iostream>
template<typename T>
T SumArray(T arr[], int n);
template<typename T>
T SumArray(T * arr[], int n);
struct debts
{
char name[50];
double amount;
};
int main()
{
using namespace std;
int things[6] = { 13,31,103,301,310,130 };
struct debts mr_E[3]
{
{ "Ima Wolfe", 2400.0 },
{ "Ura Foxe", 1300.0 },
{ "Iby Stout", 1800.0 }
};
double * pd[3];
for (int i = 0; i < 3; ++i)
{
pd[i] = &mr_E[i].amount;
}
cout << "Listenting Mr.E's debt:\n";
cout << SumArray(things, 6) << endl;
cout << "Listing Mr.E's debt:\n";
cout << SumArray(pd, 3) << endl;
return 0;
}
template<typename T>
T SumArray(T arr[], int n)
{
using namespace std;
T sum = arr[0];
cout << "template A\n";
for (int i = 1; i < n; ++i)
{
sum += arr[i];
}
return sum;
}
template<typename T>
T SumArray(T * arr[], int n)
{
using namespace std;
T sum = *arr[0];
cout << "template B\n";
for (int i = 1; i < n; ++i)
{
sum += *arr[i];
}
return sum;
}