%[^\n]输入一个英文语句,再利用循环和sscanf将里面的单词分别存到**str中,怎样实现呢?

char *str=malloc(64);

scanf("%[^\n]",str);
char **str2=malloc(128);
int j=0;

原意是想要输入一个字符串,然后将里面的单词逆序输出。
比如输入:I love this city
输出:city this love I;
我的思路是输入这个字符串,然后利用sscanf存到一个字符串数组中,然后利用循环输出,这样的思路有问题么?有其他方法么?但是我又没有用过sscanf,不知道怎样实现,求解~~
最新回答
进不ㄋ怹

2024-05-03 04:29:53

思路正确。还有函数名是scanf。存储字符串用的是char[] 数组 格式控制符是%s
追问
我的意思是输入I love this city

就要将这4个单词分别存到4个字符串(字符数组中)呢。
所以要用%[^\n]将空格也接收进字符串str中。
然后利用sscanf和4次循环函数从str中以空格为界限接收单词。
追答
为什么不一次输入完毕,然后根据空格分切呢
追问
怎样分切呢?
追答
利用正则表达式。判断是否为字符。