【发布时间】:2019-01-24 11:27:07
【问题描述】:
您好,我在用 C 语言解决编程任务时遇到问题。
函数“Trim”应该替换字符串末尾的所有空格 与空。作为参数,它得到一个字符串,但它不需要返回 任何东西。
第二个函数“countSpaces”应该计算数组中的所有空格。 作为参数,它得到一个 2 dementional Array,它应该返回 数组中的空格数。
不允许使用其他标头。
德语原文:
Die erste Funktion Trim soll alle Leerzeichen am Ende einer Zeichen- kette löschen (d.h. mit dem ASCII-Wert 0 überschreiben)。参数 wird die Zeichenkette übergeben。 Die Funktion gibt nichts zurück。
死 zweite Funktion countSpaces soll alle Leerzeichen in einem Array von 10 Zeichenketten mit je maxal 50 Zeichen zählen。参数 erhält es ein zweidimensionales Array von Zeichen。 Das Funktions-ergebnis ist die Anzahl der Leerzeichen in allen Zeichenkette des Arrays von Zeichenketten。
Weitere Headerdateien sind nicht erlaubt
#include <stdio.h>
int main()
{
char Text[10][50] = {"Dies ist ein langer ",
"Text, der in mehreren ",
"Zeilen untergebracht ",
"ist und der auch noch ",
"in manchen Zeilen mehrere",
"Leerzeichen am Ende ",
"beinhaltet! Die Leer- ",
"zeichen dieses Textes ",
"sollen gezählt werden! ",
" "};
int i = 0;
for (i = 0; i < 10; i++)
Trim(Text[i]);
printf("\nIn dem Text sind %i Leerzeichen enthalten!\n",
countSpaces(Text));
}
更新: 这就是我现在的立场,感谢你们的遮阳篷,我现在在这里:
#include <stdio.h>
int mystrlen(const char *str);
void *Trim(char *str, int ch);
int countspaces(const char *str);
int main()
{
char Text[10][50] = {"Dies ist ein langer ",
"Text, der in mehreren ",
"Zeilen untergebracht ",
"ist und der auch noch ",
"in manchen Zeilen mehrere",
"Leerzeichen am Ende ",
"beinhaltet! Die Leer- ",
"zeichen dieses Textes ",
"sollen gezählt werden! ",
" "};
int i = 0;
for (i = 0; i < 10; i++)
{
Trim(Text[i], ' ');
printf("Number of spaces after trim: %d\n", countspaces(Text[i]));
}
}
int mystrlen(const char *str)
{
const char *end = str;
while(*end++);
return end - str - 1;
}
void *Trim(char *str, int ch)
{
char *end = str + mystrlen(str) - 1;
do
{
if(*end == ch)
{
*end = 0;
}
else
{
break;
}
}while(str != end--);
return str;
}
int countspaces(const char *str)
{
int count = 0;
while(*str)
{
count += *str++ == ' ' ? 1 : 0;
}
return count;
}
到目前为止它有效。
是否也可以计算整个数组的空间?
【问题讨论】:
-
家庭作业?到目前为止你尝试过什么?
-
别忘了 C 中的
char字符串实际上称为 null-terminated 字节字符串。将一个字符更改为空终止符'\0'会有效地终止(并截断)该位置的字符串。 -
OT - 家庭作业。纯粹的代码编写请求在 Stack Overflow 上是题外话——我们希望这里的问题与特定编程问题相关——但我们很乐意帮助您自己编写!告诉我们what you've tried,以及您遇到的问题。这也将有助于我们更好地回答您的问题。