C语言字符前移3位:如何实现rot_all函数处理字符串数组
完善rot_all函数实现
要实现rot_all函数,只需遍历字符串数组的每一个元素,对每个字符串调用已实现的strrot函数完成字符偏移即可。以下是补全后的完整代码:
char rot3(char c) // Function shifts a letter by three spaces (eg 'a' -> 'd') { if (c >= 'A' && c <= 'Z') return c += 3; if (c >= 'a' && c <= 'z') return c += 3; return c; } void strrot(char *str) { int d = strlen(str); for (int i = 0; i < d; i++) { str[i] = rot3(str[i]); } } void rot_all(char *s[], int n) { // 遍历数组中的每个字符串,逐个调用strrot处理 for (int i = 0; i < n; i++) { strrot(s[i]); } } // 测试rot_all的示例main函数 int main() { // 定义可修改的字符数组组成的字符串数组 char str1[] = "Hello"; char str2[] = "World"; char str3[] = "123Xyz"; char *arr[] = {str1, str2, str3}; int arr_len = sizeof(arr) / sizeof(arr[0]); rot_all(arr, arr_len); // 输出处理后的结果 for (int i = 0; i < arr_len; i++) { printf("%s\n", arr[i]); } return 0; }
说明
rot_all的核心逻辑就是循环遍历字符串数组,把每个字符串交给strrot处理,复用已有的字符偏移逻辑- 测试用的
main函数中使用了可修改的字符数组,避免直接修改字符串字面量导致的未定义行为
内容的提问来源于stack exchange,提问作者Sevo
相关产品推荐
相关产品推荐

