C++是一个比较好的编程语言,同时,C++是道路崎岖,我想在这里和大家一起见证自己的成长,我会每天不定时的和大家分享一些自己联系的案例,源代码,以及学习心得。。。。。
案例一:题目描述: 输入字符串,判断一共有多少个字符串,以空格为界限。
#include "stdafx.h"
#include<iostream>
int _tmain(int argc, _TCHAR* argv[])
{
//这是一个判断每一行一共有几个单词的的小程序
int i,num = 0, word = 0;
char string[81];
char c;
std::cout << "please input the word :" ;
gets_s(string);
for (i= 0; (c = string[i]) != 0; i++)
if (c == ' ')
word = 0;
else if (word ==0){
word = 1;
num++;
}
std::cout << "this is %d word in this line\n", num;
system("pause");
return 0;
}
注:这里 _tmain() 和 main()的区别:
main()是标准C++的函数入口。标准C++的程序入口点函数,默认字符编码格式ANSI
函数签名为:
int main();
int main(int argc, char* argv[]);
_tmain()是windows提供的对unicode字符集和ANSI字符集进行自动转换用的程序入口点函数
函数签名为:
int _tmain(int argc, TCHAR *argv[])
(1) 当你程序当前的字符集为unicode时,int _tmain(int argc, TCHAR *argv[])会被翻译成
int wmain(int argc, wchar_t *argv[])
//wmain也是main的另一个别名,是为了支持二个字节的语言环境
(2)gets()函数的功能是从控制台获取输入的一串字符串
案例二:通过写一个计算数组的函数,在主函数中通过调用计算函数来计算数组中数字的总和。
#include "stdafx.h"
#include<iostream>
//定义一个计算数组里面数字和的函数
int add_list(int list[], int lenght){
int sum = 0;
for (int i=0; i < lenght; i++){
sum += list[i];
}
return sum;
}
int _tmain(int argc, _TCHAR* argv[])
{
//调用函数来统计数组里面数字之和
int list[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9,10 };
int lenght = sizeof(list) / sizeof(list[0]);
int sum_total=add_list(list, lenght);
std::cout << "计算的总和为:" << sum_total;
system("pause");
return 0;
}
注:这里计算数组的长度很重要,因为需要给调用函数传入循环的终止条件
sizeof() 其作用是返回一个对象或类型所占的内存字节数,使用list总字节数,除以list第一个元素的字节数,就可以得到此字符数组中的元素个数。
案例三:编写一个程序,要求用户输入任意整数和空格数,当用户按下ENTER键时,程序自动求和并打印出结果
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
//定义一个计算数组里面数字和的函数
int add_list(int list[], int lenght){
int sum = 0;
for (int i=0; i < lenght; i++){
sum += list[i];
}
return sum;
}
int _tmain(int argc, _TCHAR* argv[])
{
//调用函数来统计数组里面数字之和
std::cout << "请输入任意整数以及空格数,输入结束后按下回车键进行求和统计" << std::endl;
char string[80];
char c;
gets_s(string);
int sum = 0;
for (int i = 0; (c = (int)string[i]) != 0; i++){
if (c == ' ')
continue;
else
sum += c - '0';
}
std::cout << "计算的总和为:" << sum;
system("pause");
return 0;
}
注意:这里还是使用gets_s()函数来接受控制台输入的字符串,这里字符c是控制台数字的ASCII类型,例如,sum+='1',这里对应了1的ASCII值,故sum的值就是49,所以我们用sum += c - '0'来获得输入的整形数值。
方法二:使用输入流来和输入流类的peek()和get()方法
#include "stdafx.h"
#include<iostream>
int _tmain(int argc, _TCHAR* argv[])
{
//使用输入输出流来实现此功能
std::cout << "请输入任意整数以及空格数,输入结束后按下回车键进行求和统计" << std::endl;
int i, sum = 0;
while (std::cin >> i ){
sum += i;
while (std::cin.peek() == ' '){
std::cin.get();
}
if (std::cin.peek() == '\n'){
break;
}
}
std::cout << "计算的总和为:" << sum;
system("pause");
return 0;
}
注:这里的peek()是读取下一个字符是不是空格,如果是空格的话,就使用get()函数,达到去除空格的效果,遇到Enter时,程序自动结束。