《明解C语言》第九章字符串课后练习题
習題 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; }?
?
?
總結
以上是生活随笔為你收集整理的《明解C语言》第九章字符串课后练习题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机系统故障如何处理,安装操作系统出错
- 下一篇: C语言经典一百题(六)用*号输出字母C的