1、判断输入的字符串是否为“回文”(顺读和倒读都一样)字符串
#include
#include
#define N 100
int palindrome(char *s, int n)
{
char *head, *tail;
head = s;
tail = s + n -1;
int i;
for(i = 0; i < n / 2; head++, tail--, i++)
{
if(*head != *tail)
return 0;
}
return 1;
}
int main(void)
{
char str[N];
printf("input a string:");
scanf("%s", str);
if(palindrome(str, strlen(str)))
printf("is palindrome\n");
else
printf("is not palindrome\n");
return 0;
}
2、 从键盘接收一个字符串,然后按照字符顺序从小到大进行排序并删除重复字符。 如从键盘输入的内容为“agehiagehp”,执行完程序之后变为:“aeghip”
#include
#include
#define N 100
char *sort_del(char *p, int len)
{
char tmp;
int i, j;
for(i = 0; i < len; i++)
{
for(j = i+1; j < len; j++)
{
if(p[i] > p[j])
{
tmp = p[i];
p[i] = p[j];
p[j] = tmp;
}
}
}
j = 0;
for(i = 0; i < len; i++)
{
if(p[i] != p[i + 1])
p[j++] = p[i];
}
p[j] = '\0';
return p;
}
int main(void)
{
char str[N];
int i;
printf("please input a string:");
scanf("%s", str);
sort_del(str, strlen(str));
printf("%s\n", str);
return 0;
}
3、编写程序计算一个英文句子中最长单词的长度(字母个数(max)假设该英文句子中只含有字母和空格,在空格之间连续的字母串称为单词。
#include
#include
#include
#define N 100
int word_num(char *s)
{
int cnt = 0;
while(*s)
{
if((*s != ' ') && ((*(s + 1) == ' ') || (*(s + 1) == '\0')))
cnt++;
s++;
}
return cnt;
}
int word_len(char *s)
{
int a[N];
int max = 0, i = 0;
int j = 0;
while(*s)
{
if(*s != ' ')
a[i] = ++j;
else
{
a[++i] = 0;
j = 0;
}
s++;
}
for(i = 0; i < 5; i++)
if(a[i] > max)
max = a[i];
return max;
}
int main(void)
{
char str[N];
printf("please input words:\n");
fgets(str, N, stdin);
printf("%d\n", word_num(str));
printf("%d\n", word_len(str));
return 0;
}
4、给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前移,其他字符后移,处理后新字符串的首地址作为函数值返回。例如,s所指字符串为:asd123fgh543df,处理后新字符串为:asdfghdf123543
#include
#include
#define N 100
char *fun(char *s, int len)
{
char b[N];
int i;
int j = 0, k = 0;
char *p = s;
for(i = 0; i < len; i++, p++)
{
if((*p >= 'a' && *p <= 'z') || (*p >= 'A' && *p <= 'Z'))
s[j++] = *p;
else
b[k++] = *p;
}
s[j] = '\0';
b[k] = '\0';
strcat(s, b);
return s;
}
int main(void)
{
char str[N];
printf("input a string:");
scanf("%s", str);
puts(fun(str, strlen(str)));
return 0;
}