C++学习案例

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时,程序自动结束。

上一篇:ROS学习历程(tf)--实现tf广播器


下一篇:c – QApplication app(argc,argv)