首页 > 代码库 > 三个 编程题 :1. 回文 2. 将字符串t连接到字符串s的尾部
三个 编程题 :1. 回文 2. 将字符串t连接到字符串s的尾部
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | /* 编写一个函数,判断某个字符串是否为回文。 回文就是从左边开始读 和 从右边开始读 都是一样的,比如"abcba" */ #include <string.h> #include <stdio.h> int isHuiwen( char *str); int main() { printf( "%d\n" , isHuiwen( "a" )); return 0; } /* 返回1代表是回文 返回0代表不是回文 */ int isHuiwen( char *str) { // 1.定义一个指向变量left指向字符串的首字符 char *left = str; // 2.定义一个指向变量right指向字符串的末字符 char *right = str + strlen(str) - 1; while (left < right) { // 如果左边和右边的字符不一样 if (*left++ != *right--) { return 0; } } return 1; } /* 编写一个函数void strlink(char s[], char t[]) 将字符串t连接到字符串s的尾部 */ #include <stdio.h> void strlink( char s[], char t[]); int main() { char s1[20] = "michael " ; char s2[] = "jackson" ; strlink(s1, s2); printf( "%s\n" , s1); return 0; } void strlink( char s[], char t[]) { int i = 0; // 判断s[i]是否为字符串的尾部 while ( s[i] != ‘\0‘ ) { i++; } int j = 0; // 拷贝t的内容到s的后面 while ( (s[i] = t[j]) != ‘\0‘ ) { i++; j++; } } /* 更加精简的写法,仅作为参考(会有警告信息) void strlink2(char s[], char t[]) { int i = -1; // 判断s[i]是否为字符串的尾部 while (s[++i]) ; int j = 0; // 拷贝t的内容到s的后面 while (s[i++] = t[j++]) ; }*/ /* 编写一个函数void strlink(char *s, char *t) 将字符串t连接到字符串s的尾部 */ #include <stdio.h> void strlink( char *s, char *t); int main() { char s1[20] = "michael " ; char s2[] = "jackson" ; strlink2(s1, s2); printf( "%s\n" , s1); return 0; } void strlink( char *s, char *t) { // 判断s[i]是否为字符串的尾部 while ( *s != ‘\0‘ ) { s++; } // 拷贝t的内容到s的后面 while ( (*s = *t) != ‘\0‘ ) { s++; t++; } } /* 更加精简的写法,仅作为参考(会有警告信息) void strlink2(char *s, char *t) { // 判断s[i]是否为字符串的尾部 while (*s++); // 减回一次 s--; // 拷贝t的内容到s的后面 while ( *s++ = *t++ ) ; }*/ |
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。