<分区>
我有一个字符数组,我想删除单词(或短语)之前或之后的空格,而不是中间的空格。
例如:
“你好”-->“你好”
“你好”-->“你好”
“你好”-->“你好”
""--> ""
这是我的代码:
#include <stdlib.h>
#include <string.h>
int main(void)
{
char s[] = " prova ";
char *t = NULL;
if (s == NULL)
{
t = NULL;
}
else {
int n = strlen(s);
t = malloc(sizeof(char)* (n + 1));
for (int i = 0; i <= n; ++i)
{
t[i] = s[i];
}
int k = 0;
if (s[0] == ' ')
{
++k;
t = realloc(t, sizeof(char)*n);
for (int i = 0; i <= n - 1; ++i)
{
t[i] = s[i + 1];
}
}
if (s[n - 1] == ' ')
{
if (k == 1)
{
int j = 0;
t = realloc(t, sizeof(char)*(n - 1));
for (int i = 0; i <= n - 2; ++i)
{
t[i] = t[i];
j = i;
}
t[j] = 0;
}
else
{
int j = 0;
t = realloc(t, sizeof(char)*n);
for (int i = 0; i <= n - 1; ++i)
{
t[i] = t[i];
j = i;
}
t[j] = 0;
}
}
}
return t;
}
调试没有给我报错之类的,但是我知道内存和堆有问题,不知道怎么去掉。
我在这个平台上查找了其他与我类似的问题,它们都存在,但没有一个答案解决了我的问题。
请多多指教,谢谢