寻找最长的单词
#include
#include
void find(char a[], char word[])
{
int i = 0, j = 0;
int length = 0;
while (a[i] != '\0')
{
while (a[j] != ' ')
{
length = j - i;
j++;
}
if (length > strlen(word))
{
strncpy_s(a, word,length);
}
j++;
i = j;
}
}
int main()
{
char s[100000],b[100]={0};
printf("请输入一串字符\n");
gets(s);
find(s, b);
printf("最长的单词是%s", b);
return 0;
}
strncpy_s总是报错,版本是vs2022
strncpy_s(a, word,length); 修改为:strncpy_s(a,sizeof(a), word,length);
代码修改如下,供参考:
#include <stdio.h>
#include <string.h>
void find(char a[], char word[])
{
int i = 0, j = 0;
int length = 0;
while (a[i] != '\0')
{
if (a[i] == ' ')
{
i++;
}else{
j = i;
while (a[j] != ' ' && a[j] != '\0') j++;
if (j - i > length) //(length > strlen(word))
{
length = j - i;
strncpy(word, a+i,length);
}
//j++;
i = j;
}
}
}
int main()
{
char s[100000],b[100]={0};
printf("请输入一串字符\n");
gets(s);
find(s, b);
printf("最长的单词是%s", b);
return 0;
}