生活随笔
收集整理的這篇文章主要介紹了
C语言——日常刷题(一)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
實現如下兩個函數(不調用庫函數):
int myStrLen(char *s);
該函數功能為求字符串s的長度。
void myStrConcat(char *string1, char *string2);
該函數的功能為將字符串string2拼接至字符串string1后邊。
注意: 該函數的兩個參數,在調用時有可能會指向同一個字符串,函數需要在這種情況下能正確完成指定的功能。
主函數要求使用以上兩個函數實現如下功能:
輸入:
第一行為三個整數 n( 0 < n < 10 ), a, b, 第二行為n個整數,后邊為n行字符串,每個字符串長度不超過20。
輸出:
要求首先將第 b 行字符串拼接至第 a 行的字符串后再輸出。第一行為 n 個用單個空格分隔的整數(最后一個數后無空格),為按各字符串的輸入次序輸出的各字符串的長度。后邊 n 行為將輸入的字符串按輸入的第 2 行給出的順序依次輸出。輸入保證合法且字符串中不包含空格。
#include<stdio.h>int myStrlen(char s
[])
{int i
, len
= 0; for (i
= 0; s
[i
] != '\0'; i
++) len
++; return len
;
}
char* myStrConcat(char* str1
, char* str2
)
{char* tmp
= str1
;while (*str1
!= '\0') {str1
++; }while ((*str1
++ = *str2
++) != '\0'); return tmp
;
}int main()
{int n
, a
, b
, i
; int k
[15]; char s
[10][50] = {}; char fu
[50] = {}; puts("請輸入n的值");scanf("%d", &n
); puts("請輸入a的值");scanf("%d", &a
); puts("請輸入b的值"); scanf("%d", &b
); puts("請為int類型 數組 k 初始化");for (i
= 0; i
< n
; i
++) scanf("%d", &k
[i
]);puts("請為char類型 數組 s 初始化");for (i
= 0; i
< n
; i
++) scanf("%s", s
[i
]);if (a
!= b
)myStrConcat(s
[a
], s
[b
]); else if (a
== b
) {for (i
= 0; i
< myStrlen(s
[a
]); i
++) fu
[i
] = s
[a
][i
]; myStrConcat(s
[a
], fu
); }puts("打印數組中每一個下標對應的值的長度");for (i
= 0; i
< n
; i
++) {if (i
== 0)printf("s[%d] = %d\n", i
, myStrlen(s
[i
])); elseprintf("s[%d] = %d\n", i
, myStrlen(s
[i
]));}printf("\n");puts("遍歷數組k[]的值");for (i
= 0; i
< n
; i
++)printf("k[%d] = %d\n", i
, k
[i
]);puts("遍歷數組s[]的值");for (i
= 0; i
< n
; i
++)printf("s[%d] = %s\n", i
, s
[i
]);puts("遍歷數組s[k[i]]的值");for (i
= 0; i
< n
; i
++)printf("s[%d] = %s\n", i
, s
[k
[i
]]); return 0;
}
總結
以上是生活随笔為你收集整理的C语言——日常刷题(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。