广州做服装电商拿货的网站,建筑教育培训网,wordpress是什么软件,网站 数据备份描述
对字符串中的所有单词进行倒排。
说明#xff1a; 1、构成单词的字符只有26个大写或小写英文字母#xff1b; 2、非构成单词的字符均视为单词间隔符#xff1b; 3、要求倒排后的单词间隔符以一个空格表示#xff1b;如果原字符串中相邻单词间有多个间隔符时#xf…描述
对字符串中的所有单词进行倒排。
说明 1、构成单词的字符只有26个大写或小写英文字母 2、非构成单词的字符均视为单词间隔符 3、要求倒排后的单词间隔符以一个空格表示如果原字符串中相邻单词间有多个间隔符时倒排转换后也只允许出现一个空格间隔符 4、每个单词最长20个字母
数据范围字符串长度满足 1≤n≤10000 输入描述 输入一行表示用来倒排的句子
输出描述 输出句子的倒排结果
示例1 输入 I am a student 输出 student a am I 示例2 输入 $bo*y gi!r#l 输出 l r gi y bo 实现
#include ctype.h
#include stdio.h
#include stdlib.h
#include stdbool.h
#include string.hbool isCharNum(char c)
{if (((c a) (c z)) || ((c A) (c Z)))return true;elsereturn false;
}
int main() {char c;int sLen 0;char s[10001][21] {0};while (1) {int ret scanf(%[^ \n]%c, s[sLen], c);// printf(s: %s, len: %d, c: 0x%02x[0x%02x, 0x%02x], ret: %d\n, s[sLen], sLen, c, , \n, ret);sLen;if (c \n) {break;}}// for (int i 0; i sLen; i) {// printf(%s , s[i]);// }// printf(\n);for (int i 0; i sLen; i) {int s1Len strlen(s[i]);// printf(s: %s, len: %d\n, s[i], s1Len);for (int j 0; j s1Len; j) {if (!isCharNum(s[i][j])) {s[i][j] ;}}// printf(result s: %s, len: %d\n, s[i], s1Len);}// for (int i 0; i sLen; i) {// printf(%s , s[i]);// }// printf(\n);for (int i sLen - 1; i 0; i--) {int s1Len strlen(s[i]);char *pBuf NULL;int m -1;int cnt 0;while ((pBuf strrchr(s[i], )) ! NULL) {int curS1Len strlen(s[i]);m pBuf - s[i];// printf(pBuf: 0x%02x[0x%02x]. m %d[%d]\n, *pBuf, \0, m, curS1Len);if ((m 1) ! curS1Len) { // 找到的 不是字符串结尾printf(%s , pBuf 1);}m pBuf - s[i];s[i][m] \0; // 将 换成结束符// printf(s: %s, len: %d\n, s[i], strlen(s[i]));}printf(%s , s[i]); // 跳出while说明没有 打印最后的字符串}printf(\n);
}