【发布时间】:2015-03-03 17:28:35
【问题描述】:
我正在编写一些练习程序,但在下面的函数挤压中遇到了问题。它按预期返回整数而不是 char 数组。该代码意味着用户首先输入一个字符串,然后输入一个他希望删除的字符。 squeez 函数接收两者并输出一个没有给定字符的字符串。
目前我的函数给出警告:
return 从没有强制转换的指针中生成整数 [默认启用]
我知道函数返回类型 'int' b/c 它也显示第二个错误:
格式“%s”需要“char *”类型的参数,但参数 2 的类型为“int”[-Wformat=]
/* Squeeze Function */
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
char squeez(char s[], int c)
{
int i, j;
for (i = j = 0; s[i] != '\0'; i++)
{
if (s[i] != c)
{
s[j++] = s[i];
}
printf("%c %d", s[i], c);
}
printf("%s", s);
s[j] = '\0';
return s;
}
int main(void)
{
int i, c;
char str[10];
for (i = 0; (c = getchar()) != '\n'; ++i)
{
str[i] = c;
}
c = getchar();
printf("%s", squeez(str, c));
return EXIT_SUCCESS;
}
感谢您的任何帮助!
【问题讨论】:
标签: c function return-value