照着打的出了错,会了语法不会编,很尴尬的状态,讲的会又啥也不会
#include <stdio.h>#include <stdlib.h>
#include <string.h>
void inverse();
void inverse01(buf, mybuf);
void main()
{
char buf[] = "abcde";
char mybuf[1024] = { 0 };
inverse(buf);
inverse01(buf, mybuf);
}
void inverse(char *p)
{
if (p == NULL)
return;
if (*p == '\0')
return;
inverse(p+1);
printf("%c", *p);
}
void inverse01(char* p,char* result)
{
if (p == NULL||result==NULL)
return;
if (*p == '\0')
return;
inverse(p + 1,result);
strncat_s(result, p, 1);
}
严重性 代码 说明 项目 文件 行
错误 C2198 “strncat_s”: 用于调用的参数太少
警告 C4020 “inverse”: 实参太多 API
警告 C4024 “strncat_s”: 形参和实参 2 的类型不同 API
警告 C4024 “strncat_s”: 形参和实参 3 的类型不同 API
警告 C4047 “函数”:“rsize_t”与“char *”的间接级别不同 API E
警告 C4047 “函数”:“const char *”与“int”的间接级别不同
错误(活动) E0165 函数调用中的参数太少
下面程序strncpy_s(new, str + i,count);语句出现错误与上面类似
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int tranSpace(char* str, char* new)
{
char* p = str;
int i, j, count = 0;
if (str == NULL || new == NULL)
{
printf("func tranSpace()\n");
return -1;
}
i = 0;
while (isspace(p[i]) && p[i] != '\0')
i++;
j = strlen(p) - 1;
while (isspace(p[j]) && p[j] != '\0')
j--;
count = j - i + 1;
strncpy_s(new, str + i,count);
new[count] = '\0';
return 0;
}
int main()
{
char buf[1024] = {0};
char* str = " abcde ";
tranSpace(str,buf);
printf("%s", buf);
}