以下是一些常见的
<cmath>
方法:
double sqrt(double arg);
double pow(double base, double exponent);
double fabs(double arg);
double sin(double arg); double cos(double arg); double tan(double arg);
double log(double arg); double log10(double arg);
double exp(double arg);
double floor(double arg); double ceil(double arg);
double round(double arg);
double fmod(double numerator, double denominator);
注意:
sqrt
接受的参数是 double
类型。如果传递一个整数给 sqrt
,C++ 会自动进行类型转换,将整数转换为 double
。这是因为 sqrt
函数是为浮点数设计的,C++通过自动类型转换确保了参数的正确类型。
示例程序:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
// sqrt:计算平方根
double squareRoot = sqrt(25.0);
cout << "Square Root of 25: " << squareRoot << endl;
// pow:计算指定数字的指定次方
double powerResult = pow(2.0, 3.0);
cout << "2^3: " << powerResult << endl;
// fabs:计算浮点数的绝对值
double absoluteValue = fabs(-10.5);
cout << "Absolute Value of -10.5: " << absoluteValue << endl;
// sin, cos, tan:计算正弦、余弦和正切值
double angle = 45.0;
cout << "Sin(45): " << sin(angle) << endl;
cout << "Cos(45): " << cos(angle) << endl;
cout << "Tan(45): " << tan(angle) << endl;
// log, log10:计算自然对数和以10为底的对数
double naturalLog = log(2.71828);
cout << "Natural Log of 2.71828: " << naturalLog << endl;
double logBase10 = log10(100.0);
cout << "Log base 10 of 100: " << logBase10 << endl;
// exp:计算指数函数
double exponentResult = exp(1.0);
cout << "e^1: " << exponentResult << endl;
// floor, ceil:向下取整和向上取整
double floorResult = floor(3.8);
cout << "Floor of 3.8: " << floorResult << endl;
double ceilResult = ceil(3.2);
cout << "Ceil of 3.2: " << ceilResult << endl;
// round:四舍五入到最近的整数
double roundedValue = round(4.6);
cout << "Rounded Value of 4.6: " << roundedValue << endl;
// fmod:计算浮点数的余数
double remainder = fmod(10.5, 3.0);
cout << "Remainder of 10.5 / 3.0: " << remainder << endl;
return 0;
}
程序结果:
常用方法:
#include <stdio.h>
#include <string.h>
int main() {
// puts函数示例
char str_puts[] = "Hello, World!";
puts(str_puts); //Hello, World!
// gets函数示例
char str_gets[100];
printf("Enter a string: ");//输入:abc
gets(str_gets);
printf("You entered: %s\n", str_gets);//abc
// strcat函数示例
char dest_strcat[20] = "Hello, ";
char src_strcat[] = "World!";
strcat(dest_strcat, src_strcat);
printf("strcat result: %s\n", dest_strcat);//Hello, World!
// strcpy函数示例
char dest_strcpy[20];
char src_strcpy[] = "Hello, World!";
strcpy(dest_strcpy, src_strcpy);
printf("strcpy result: %s\n", dest_strcpy);//Hello, World!
// strcmp函数示例
char str1_strcmp[] = "apple";
char str2_strcmp[] = "banana";
int result_strcmp = strcmp(str1_strcmp, str2_strcmp);
printf("strcmp result: %d\n", result_strcmp);//-1
// strlwr函数示例
char str_strlwr[] = "Hello, World!";
strlwr(str_strlwr);
printf("strlwr result: %s\n", str_strlwr);//strlwr result: hello, world!
// strupr函数示例
char str_strupr[] = "Hello, World!";
strupr(str_strupr);
printf("strupr result: %s\n", str_strupr);//strupr result: HELLO, WORLD!
return 0;
}
strcat()字符数组的连接解决溢出方案
#include <stdio.h>
#include <string.h>
char * merge(char * p1,char * p2){
char * result=malloc(strlen(p1)+strlen(p2)+1);
strcpy(result,p1);
strcat(result,p2);
return result;
}
int main(){
const int MaxSize=100;
char ch1[MaxSize],ch2[MaxSize];
fgets(ch1,MaxSize,stdin);
fgets(ch2,MaxSize,stdin);
// 去除换行符
ch1[strcspn(ch1, "\n")] = '\0';
ch2[strcspn(ch2, "\n")] = '\0';
char *p1=ch1,*p2=ch2;
char *result=merge(p1,p2);
printf("%s",result);
}