1、练习9-1
2、练习9-2
#include<stdio.h>
int main(void)
{
char s[] = "ABC";
printf("字符串为\"%s\"。\n", s);
s[0] = '\0';
printf("字符串为\"%s\"。\n", s);
return 0;
}
3、练习9-3
#include<stdio.h>
#include<string.h>
#define NUMBER 30
int main(void)
{
int i;
char s[NUMBER][128];
int cnt=0;
for(i=0;i<NUMBER;i++){
printf("s[%d]:",i);
scanf("%s",s[i]);
if (strcmp(s[i], "$$$$$") == 0)
break;
cnt++;
}
for(i=0;i<=cnt;i++){
if (strcmp(s[i], "$$$$$") != 0)
{
printf("s[%d] = \"%s\"\n", i, s[i]);
}
}
return 0;
}
4、练习9-4
#include<stdio.h>
void null_string(char s[]){
s[0]='\0';
}
int main(void)
{
char ch[128];
printf("请输入字符串: ");
scanf("%s", ch);
null_string(ch);
printf("字符串为\"%s\"\n", ch);
return 0;
}
5、练习9-5
#include<stdio.h>
#include<string.h>
int str_char(const char s[],int c){
int i;
for(i=0;i<strlen(s);i++){
if(s[i]=='c'){
break;
}
}
return i;
}
int main(void)
{
char ch[128];
int i;
printf("请输入字符串: ");
scanf("%s", ch);
i=str_char(ch,'c');
printf("字符c的下标值为%d",i);
return 0;
}
6、练习9-6
#include<stdio.h>
#include<string.h>
int str_chnum(const char s[],int c){
int i;
int cnt=0;
for(i=0;i<strlen(s);i++){
if(s[i]=='c'){
cnt++;
}
}
return cnt;
}
int main(void)
{
char ch[128];
int i;
printf("请输入字符串: ");
scanf("%s", ch);
i=str_chnum(ch,'c');
printf("字符串S中字符c的个数为%d",i);
return 0;
}
7、练习9-7
#include<stdio.h>
int put_stringn(const char s[], int n)
{
int cnt=0;
while(cnt<n){
int i = 0;
while(s[i]){
putchar(s[i++]);
}
cnt++;
}
}
int main(void)
{
char s[128];
int i;
printf("请输入字符串: ");
scanf("%s", s);
printf("请输入字符串显示的次数: ");
scanf("%d", &i);
put_stringn(s, i);
return 0;
}
8、练习9-8
#include<stdio.h>
#include<string.h>
int put_stringr(const char s[]){
int i;
int j;
j=strlen(s)-1;
for(i=0;i<strlen(s);i++){
putchar(s[j-i]);
}
}
int main(void)
{
char ch[128];
int i;
printf("请输入字符串: ");
scanf("%s", ch);
put_stringr(ch);
return 0;
}
9、练习9-9
#include<stdio.h>
#include<string.h>
int rev_string(char s[]){
int i;
int j;
j=strlen(s)-1;
char temp[128];
for(i=0;i<=j;i++){
temp[i]=s[j-i];
}
for(i=0;i<=j;i++){
s[i]=temp[i];
}
}
int main(void)
{
char ch[128];
int i;
printf("请输入字符串: ");
scanf("%s", ch);
rev_string(ch);
printf("更新后的字符串: %s",ch);
return 0;
}
10、练习9-10
#include<stdio.h>
#include<string.h>
int del_digit(char s[]){
int i;
char temp[128];
for(i=0;i<=(strlen(s)-1);i++){
if((s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z')){
temp[i]=s[i];
}
else{
continue;
}
putchar(temp[i]);
}
}
int main(void)
{
char ch[128];
printf("请输入字符串: ");
scanf("%s", ch);
printf("更新好的字符串");
del_digit(ch);
return 0;
}
11、练习9-11
#include<stdio.h>
#include<string.h>
#define NUMBER 10
#define SIZE 128
void put_strary(char s[NUMBER][SIZE], int n){
int i;
for (i = 0; i < n; i++){
if (strcmp(s[i], "$$$$$") == 0)
break;
printf("s[%d] = \"%s\"\n", i, s[i]);
}
}
int main(void)
{
int i;
char cs[NUMBER][SIZE];
printf("请输入%d个字符串。\n", NUMBER);
for (i = 0; i < NUMBER; i++){
printf("s[%d] = ",i);
scanf("%s", cs[i]);
if (strcmp(cs[i], "$$$$$") == 0)
break;
}
put_strary(cs, NUMBER);
return 0;
}
12、练习9-12
#include<stdio.h>
#define NUMBER 3
void rev_string(char s[][128], int n)
{
int i, j, k;
for (i = 0; i < n; i++){
j = 0;
while (s[i][j]){
j++;
}
for (k = 0; k < j / 2; k++){
int temp;
temp = s[i][k];
s[i][k] = s[i][j - k - 1];
s[i][j - k - 1] = temp;
}
}
}
int main(void)
{
int i;
char str[NUMBER][128];
printf("请输入%d组字符串。\n", NUMBER);
for (i = 0; i < NUMBER; i++){
printf("s[%d] = ", i);
scanf("%s", str[i]);
}
printf("以下为经过变换后的字符串。\n");
rev_string(str, NUMBER);
for (i = 0; i < NUMBER; i++){
printf("s[%d] = \"%s\"\n", i, str[i]);
}
return 0;
}