#include <stdio.h>
#include <string.h>
#include <conio.h>
char str[100];
int main(void)
{
int i, t, j, len;
printf("Enter string: ");
scanf("%[^\n]ed", str);
len = strlen(str);
str[len] = ' ';
for (t = 0, i = 0; i < strlen(str); i++)
{
if ((str[i] == ' ') && (str[i - 1] == 'd') && (str[i-2]=='e'))
{
for (j = t; j < i; j++)
printf("%c", str[j]);
t = i + 1;
printf("\n");
}
else
{
if (str[i] == ' ')
{
t = i + 1;
}
}
}
}
該程序在用戶插入後應找到以「ed」結尾的單詞。如果用戶沒有插入以ed結尾的單詞,則應該打印一條消息,如「沒有ed的單詞」。我試圖補充一點:查找字符串的最後一個字母
if ((str[i] == ' ') && (str[i - 1] == 'd') && (str[i-2]=='e')=NULL)
printf("There no words with ed");
但它沒有奏效。
從修改'str [len] ='';'開始'str [len-1] ='';'。數組索引在C中以零開頭。str [len] =''用空格替換零終止符,從而導致未定義的行爲。 –
當'i'爲0時訪問'str [i - 1]'也會導致未定義的行爲。 –
@WhozCraig'str'是全局變量。 (str用0初始化) – BLUEPIXY