习题 9-2
#include <stdio.h>
int main() {
char str[] = "ABC";
// char str[] = "ABC\0DEF";
str[0] = '\0'; //关键语句
printf("字符串str为%s。\n",str);
return 0;
}
课本代码9-5 ---格式化显示字符串
#include <stdio.h>
int main() {
char str[] = "12345";
printf("%s\n",str);
printf("%3s\n",str);//至少显示3位
printf("%.3s\n",str); //至多显示3位
printf("%8s\n",str);
printf("%-8s\n",str);//左对齐
printf("%3.2s\n",str);// 一共5个位置,从左齐显示2个
return 0;
}
操作运行结果:
习题9-3
#include <stdio.h>
//若字符串str中含有字符c(若有多个,以先出现的为准),则返回该元素的下标值,否则返回-1。
int str_char(const char str[],char c){
int i;
for (i = 0;str[i] != '\0';i++){
if(str[i] != c){
continue;
}else
return i;
}
return -1;
}
int main(){
char st[100],c;
c = getchar();
printf("请输入字符串:");
scanf("%s",st);
printf("字符串%s中%c的位置为%d。\n",st,c,str_char(st,c));
return 0;
}
运行结果:
习题9-4
//若字符串str中含有字符c的个数,没有返回0。
int str_char(const char str[],char c){
int i,count = 0;;
for (i = 0;str[i] != '\0';i++){
if(str[i] == c){
count ++;
continue;
}
}
if(count != 0)
return count;
else
return 0;
}
int main(){
char st[100],c;
c = getchar();
printf("请输入字符串:");
scanf("%s",st);
printf("字符串%s中%c的个数为%d。\n",st,c,str_char(st,c));
return 0;
}
练习9-5
#include <stdio.h>
void put_string(const char str[]){
unsigned i = 0;
while(str[i])
printf("%c",str[i++]);
}
int main(){
char str[100];
printf("请输入字符串:");
scanf("%s",str);
put_string(str);
putchar('\n');
return 0;
}
练习9-6编写如下函数,使字符串str显示no次
#include <stdio.h>
//编写如下函数,使字符串str显示no次
void put_stringn(const char str[],int no){
unsigned i,j;
for(j = 1; j <= no;j++){
i = 0;
while(str[i])
printf("%c",str[i++]);
putchar('\n');
}
}
int main(){
char str[100];
int no;
printf("请输入字符串:");
scanf("%s",str);
printf("请输入打印次数:");
scanf("%d",&no);
put_stringn(str,no);
putchar('\n');
return 0;
}
练习9-7,实现字符串的逆向输出
#include <stdio.h>
void put_rstring(const char str[]){
unsigned i = 0;
while(str[i])
i++;
while(i>=0)
putchar(str[i--]);
}
int main(){
char str[100];
printf("请输入字符串:");
scanf("%s",str);
put_rstring(str);
putchar('\n');
return 0;
}