给出的程序的功能是删除字符串(字符数组)s中所有的小写字母c。请改正程序中的错误,使它能得到正确的结果。
#include "stdio.h"
#include "string.h"
int main()
{
char s[80];
int i,j;
scanf("%s",s);
printf("The original string: n");
puts(s);
for(i=j=0;s[i]!=' ';i++)
{
if(s[i]!= 'c')
s[j++]=s[i];
}
s[j]=' ';
printf("The string after deleted: n");
puts(s);
return 0;
}
2.去除空格符
编写程序,功能是删除输入的字符串中的所有空格。字符串长度不超过30。
输入:
一行字符。
输出:
打印输出去除空格符后的结果字符串。
# include "stdio.h"
# include "string.h"
int main()
{
char word[31];
scanf("%[^n]", word);
char *p;
p = word;
int i, j;
for(i=0; i<31; i++){
if(*p == ' '){
for(j=i; j<31; j++){
word[j] = word[j+1];
}
}
p++;
}
puts(word);
scanf("%d", &i);
return 0;
}
3.字符串操作
编写程序,功能是将源字符串s中所有下标为奇数的字符或 ASCII码 为偶数的字符放入新字符(串)数组t中(规定第一个字符放在第0位中)。 并输出处理后新的字符串。
输入:
一行字符,长度小于20.
输出:
处理后的字符串。
#include#include #define N 80 main() { char s[N], t[N]; int i,j=0,k=0; gets(s); while(s[j]) j++; for(i=0;i 4.找最长字符串 编写程序,功能是将键盘输入的N个字符串中找出最长的那个串并输出。
输入:
第一行为一个整数N,代表字符串个数。
第二行开始输入N个字符串。输出:
最长的字符串。#include5.单词排序#include int main() { int N; char s[100][100]; int i; int max_i, max_len = 0; scanf("%d",&N); for(i = 0; i < N; i ++) { scanf("%s",s[i]);//输入 } for(i = 0; i < N; i ++) { int l = strlen(s[i]); if(max_len max_len = l; max_i = i; } } printf("%sn", s[max_i]);//输出最长字符串 return 0; } 有一个字符串数组包含9个字符串,每个字符串都是一个单词,且每个串的长度均不超过7,要求对单词进行排序后再输出。具体要求如下:
- 使用二维字符数组存放这9个字符串。
- 为二维字符数组输入数据。
- 输出处理前和处理后的字符串数组并进行比较。
输入:
9个字符串,长度小于7。输出:
打印输出处理前的9个字符串。
打印输出处理后的9个字符串。# include# include int main () { char str[9][10]; for (int i = 0 ; i < 9 ; i++) scanf("%s",str[i]); printf("排序前的字符串:n"); for (int i = 0 ; i < 9 ; i++) printf("%sn",str[i]); for (int i = 0 ; i < 8 ; i++) { for (int j = i+1 ; j < 9 ; j++) { if (strcmp(str[i],str[j])>0)// 利用函数来判断大小 { char tmp[10];// 定义临时数组用于交换 strcpy(tmp,str[i]); strcpy(str[i],str[j]); strcpy(str[j],tmp); } } } printf("排序后的字符串:n"); for (int i = 0 ; i < 9 ; i++) printf("%sn",str[i]); return 0; }



