如何用递归函数将ABC DEF GHI转化为GHI DEF ABC?
void reverse(char *str) { if (*str) { if(str != ' ') { str += 1; } reverse(str+1); printf("%c", str); } }
htrmnn0y1#
printf说明符%s可以与*的 precision 一起使用,这允许您传递一个整数值(作为int),指定要从字符串读取的最大字节数。strspn和strcspn可用于查找字符串中的 * span *,分别由在其第二个参数中找到或未找到的字符组成。这些函数一起使用时,我们可以跳过前导空格,并找到由空格分隔的每个子字符串的长度。
printf
%s
*
int
strspn
strcspn
#include <stdio.h> #include <string.h> void print_sentence_backwards(const char *sent) { sent += strspn(sent, " "); if (*sent) { size_t n = strcspn(sent, " "); print_sentence_backwards(sent + n); printf("%.*s ", (int) n, sent); } } int main(void) { print_sentence_backwards("ABC DEF GHI"); putchar('\n'); }
GHI DEF ABC
1条答案
按热度按时间htrmnn0y1#
printf
说明符%s
可以与*
的 precision 一起使用,这允许您传递一个整数值(作为int
),指定要从字符串读取的最大字节数。strspn
和strcspn
可用于查找字符串中的 * span *,分别由在其第二个参数中找到或未找到的字符组成。这些函数一起使用时,我们可以跳过前导空格,并找到由空格分隔的每个子字符串的长度。