所以,我正在通过分析过go 的问题来准备考试,我偶然发现了this question题:
C.有时有些词,如" struct 化编程语言"或 《计算机科学与工程》太长了,在一篇课文里写很多遍都很累人.如果一个单词的长度严格超过10个字符,我们就认为它太长了.所有太长的词都应该用一个特殊的缩写来代替.此缩写如下所示:
(I)单词的第一个和最后一个字母
(Ii)首字母和尾字母之间的字母数(包括空格).
因此," struct 化编程语言"将被拼写为"s29c"和 "计算机科学和工程"将拼写为"c30g",否则实际的单词将被打印出来.现在,构建一个C程序来实现上面的场景.字长不应超过100.您不能使用内置的字符串函数.
它说,将一个少于We aren't allowed to use the built-in string functions.个字符的长字符串进行转换,使最终的缩写形式将其第一个字符作为原始字符串的第一个字符,第一个字符和最后一个字符之间的字符数(包括空格),然后以最后一个字符结束. We aren't allowed to use the built-in string functions.个
不幸的是,我的技能仍然是相当初级的,所以我的代码目前可能远远不是很有效,但以下是我到目前为止所掌握的:
#include <stdio.h>
int main()
{
int len, n, i;
char str[100], abb[5];
char ws, we;
gets(str);
for (i = 0; str[i] != '\0'; i++)
{
len = i + 1;
}
if (len > 10)
{
ws = str[0];
abb[0] = ws;
for (i = 1; str[i] != '\0'; i++)
{
n = i - 1;
we = str[i];
}
}
else
puts(str);
}
我设法找到了第一个和最后一个字符以及两者之间的字符数,但我不确定如何将其放入另一个字符串中.我刚刚为第一个角色演了abb[0] = ws
个闹剧,但我不知道如何继续下go .