1. 输入一个字符串,统计其中有多少个单词。假设单词之间以空格隔开。
#include"stdio.h"
#define N 20
int count(char s[]){
int num,i;
num = (s[0]!='\0')?1:0;
i=1;
while(s[i]!='\0'){
if(s[i] !=' ' && s[i-1] == ' ')
num++;
i++;
}
return num;
}
int main(){
char str[N];
printf("输入字符串:");
gets(str);
printf("单词个数: %d\n",count(str));
return 0;
}
2. 在字符串中删除与某字符相同的字符
#include"stdio.h"
#define N 20
void delete(char s[],char c){
int i,j;
i=j=0;
while(s[i] != '\0'){
if(s[i] != c){
s[j] = s[i];
j++;
}
i++;
}
s[j] = '\0';
}
int main(){
char str[N],c;
printf("输入字符串: ");
gets(str);
printf("输入字符: ");
scanf("%c",&c);
delete(str,c);
printf("删除后: ");
puts(str);
return 0;
}
3. 在字符串每个字符间插入一个空格
#include"stdio.h"
#define N 20
void insertBlank(char s[],char news[]){
int i,j;
i=j=0;
while (s[i]!='\0')
{
news[j]=s[i];
j++;
news[j]=' ';
j++;
i++;
}
}
int main(){
char str[N],NewS[N];
printf("字符串: ");
gets(str);
insertBlank(str,NewS);
printf("插入空格后: ");
puts(NewS);
return 0;
}
4. 字符串逆序存放
#include"stdio.h"
#include"string.h"
#define N 20
void swap(char* a, char* b){
char temp;
temp = *a;
*a = *b;
*b = temp;
}
void reverse(char s[]){
int i,j;
i=0;
j=strlen(s)-1;
while(!(i==j||i==j-1)){
swap(s+i,s+j);
i++;
j--;
}
}
int main(){
char str[N];
printf("字符串: ");
gets(str);
reverse(str);
printf("逆序: ");
puts(str);
return 0;
}
5. 字符串拼接
#include"stdio.h"
#include"string.h"
#define N 20
void _strcat(char s[], char t[]){
int i,j;
i=0;
j=strlen(s);
while(t[i]!='\0'){
s[j]=t[i];
i++;
j++;
}
}
int main(){
char str1[N],str2[N];
printf("第一个字符串: ");
gets(str1);
printf("第二个字符串: ");
gets(str2);
_strcat(str1,str2);
printf("拼接后: ");
puts(str1);
return 0;
}
|