【发布时间】:2012-02-27 17:24:53
【问题描述】:
我正在尝试为一个更大的项目编写一个函数,该项目包括使用字符数组。我正在处理的当前功能应该只保存字母字符并删除任何特殊字符(例如:!#@$?)和空格。我当前的函数有效,但由于某种原因,当我运行它时,总是删除数组的第一个字符。为什么会这样,我怎样才能让它保存第一个字符呢?
#include <stdio.h>
int main(void)
{
char phrase[101];
printf("Enter a phrase to change:");
fgets(phrase, 101, stdin);
printf("original phrase: %s", phrase);
int i = 0, j = 0;
while(phrase[i] != '\0')
{
if( ('A' <= phrase[i] && phrase[i] >= 'Z') ||
('a' <= phrase[i] && phrase[i] >= 'z') )
{
phrase[j] = phrase[i];
i++;
j++;
}
else
i++;
phrase[j] = '\0';
}
printf("new phrase: %s\n", phrase);
return 0;
}
【问题讨论】:
标签: c arrays function character