C语言--------------字符串小程序练习(一)

来源:互联网 发布:星际皆知我爱你百度云 编辑:程序博客网 时间:2024/05/18 18:46

1、判断输入的字符串是否为“回文”(顺读和倒读都一样)字符串

#include <stdio.h>#include <string.h>#define N 100int 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");elseprintf("is not palindrome\n");return 0;}

2、 从键盘接收一个字符串,然后按照字符顺序从小到大进行排序并删除重复字符。 如从键盘输入的内容为“agehiagehp”,执行完程序之后变为:“aeghip”

#include <stdio.h>#include <string.h>#define N 100char *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 <stdio.h>#include <stdlib.h>#include <string.h>#define N 100int 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 <stdio.h>#include <string.h>#define N 100char *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;elseb[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;}