做 商城 网站 费用,做网站的数据库的步骤,做视频的软件模板下载网站有哪些内容,如何建设国际网站首页文章目录 1.字符串左旋结果2.offsetof宏的实现3.模拟实现atoi4.n的k次方5.字符串逆序 1.字符串左旋结果
题目内容#xff1a;写一个函数#xff0c;判断一个字符串是否为另外一个字符串旋转之后的字符串。
例#xff1a;给定s1 AABCD和s2 BCDAA,返回1
给定s1 abcd和s2… 文章目录 1.字符串左旋结果2.offsetof宏的实现3.模拟实现atoi4.n的k次方5.字符串逆序 1.字符串左旋结果
题目内容写一个函数判断一个字符串是否为另外一个字符串旋转之后的字符串。
例给定s1 AABCD和s2 BCDAA,返回1
给定s1 abcd和s2 ACBD,返回0
AABCD左旋一个字符得到ABCDA
AABCD左旋两个字符得到BCDAA
AABCD右旋一个字符得到DAABC
#include stdio.h
#include string.hint is_string_left_rotate(char* str1, char* str2)
{int i 0;int len strlen(str1);for (i 0; i len; i){char tmp *str1;int j 0;for (j 0; j len - 1; j){*(str1 j) *(str1 j 1);}*(str1 len - 1) tmp;if (strcmp(str1, str2) 0){return 1;}}return 0;
}int main()
{char arr1[10] AABCD;char arr2[10] BCDAA;int ret is_string_left_rotate(arr1,arr2);if (ret 1){printf(YES\n);}elseprintf(NO\n);return 0;
}2.offsetof宏的实现
写一个宏计算结构体中变量相对于首地址的偏移
#include stdio.h#define OFFSETOF(struct_name,mem_name) (int)(((struct_name*)0)-mem_name)struct A
{int a;short b;int c;char d;
};int main()
{printf(%d\n, OFFSETOF(struct A, a));printf(%d\n, OFFSETOF(struct A, b));printf(%d\n, OFFSETOF(struct A, c));printf(%d\n, OFFSETOF(struct A, d));return 0;
}3.模拟实现atoi
#include stdio.h
#include limits.h
#include ctype.henum State
{INVALID,VALID
};enum State state INVALID;int my_atoi(const char* p)
{int flag 1;if (p NULL){return 0;}if (*p \0){return 0;}while (isspace(*p)){p;}if (*p ){flag 1;p;}else if (*p -){flag -1;p;}long long n 0;while (isdigit(*p)){n n * 10 flag * (*p - 0);if (n INT_MIN || nINT_MAX){return 0;}p;}if (*p \0){state VALID;return (int)n;}else{return (int)n;}
}int main()
{const char* p -14a;int ret my_atoi(p);if(state VALID)printf(合法%d\n, ret);elseprintf(非法%d\n, ret);return 0;
}4.n的k次方
编写一个函数实现n的k次方使用递归实现。
#include stdio.hdouble Pow(int n, int k);int main()
{int n 0;int k 0;scanf(%d %d, n, k);double ret Pow(n, k);printf(%lf\n, ret);return 0;
}double Pow(int n, int k)
{if (k 0)return 1;else if (k 0)return n * Pow(n, k - 1);elsereturn 1.0 / (Pow(n, -k));
}5.字符串逆序
编写一个函数reverse_string(char *string)
实现将参数字符串中的字符反向排列不是逆序打印。
要求不能使用C函数库中的字符串操作函数。
比如char arr[] “abcdef”
逆序之后数组的内容变成fedcba