标签:anti 结束 ISE style return nbsp str 循环控制 strcmp
1.字符串左旋转k个字符,
思想:很简单,写两个for循环,外层是控制旋转的次数,内层就是旋转,每次将第一个元素赋给临时变量,在内层循环中将后一个元素赋给前一个元素,内层循环结束,将临时变量赋给字符串最后一元素的位置。下面详见代码
void anticlockwise(char ch[], int k){ if (k > strlen(ch) || k == 0){ printf("输入错误:\n"); return; } for (int i = 0; i < k; i++){ char tmp = ch[0]; for (int j = 0; j < strlen(ch) - 1; j++){ ch[j] = ch[j + 1]; } ch[strlen(ch) - 1] = tmp; } printf("%s\n", ch); }
2.判断字符串旋转后是否和另一个元素是否相等,相等返回1,否则返回0
思想:和上面所述问题思想大概一致,这次的外层循环控制条件是字符串1的长度,内层循环结束后判断旋转后的结果是否和字符串2相等,如果相等直接返回1,不相等继续遍历,当吧外层循环遍历完后,木有相等的,那么直接返回0,详见代码
int anticlockwiseIsEqual(char ch1[], char ch2[]){ for (int i = 0; i < strlen(ch1); i++){ char tmp = ch1[0]; for (int j = 0; j < strlen(ch1) - 1; j++){ ch1[j] = ch1[j + 1]; } ch1[strlen(ch1) - 1] = tmp; if (strcmp(ch1, ch2) == 0){ return 1; } } return 0; }
标签:anti 结束 ISE style return nbsp str 循环控制 strcmp
原文地址:https://www.cnblogs.com/duy666/p/10247639.html