WHCSRL 技术网

c语言 字符串数组 将字符串中的小写字母转换为大写_m0

一种逃避了指针使用的做法~

任务描述

从键盘读入一个字符串,把字符串中的小写字母转换为大写字母,输出转换后的字符串和转换的字母个数。

测试说明

平台会对你编写的代码进行测试:

测试输入: abcABC123aB

预期输出: ABCABC123AB 4

  1. #include<stdio.h>
  2. #include<string.h>
  3. int tran(char s[]);
  4. int tran(char s[]) {
  5. scanf("%%s",s);
  6. //字符串数组可以直接以字符串格式%%s读入,这时用scanf不需要&
  7. int len=0;
  8. while (s[len]){
  9. len++;
  10. }
  11. //统计字符串数组长度的绝佳办法,先不定义长度
  12. //用一个while循环,当下标存在时计数
  13. //最终得到的累加值就是字符串数组的总长
  14. int cnt=0;
  15. int i;
  16. for(i=0;i<len;i++){
  17. if(s[i]>='a'&&s[i]<='z'){
  18. s[i]-=32;
  19. cnt++;
  20. }
  21. }
  22. return cnt;
  23. }
  24. int main( ){
  25. char s[20];
  26. int n=tran(s);
  27. //审题,n是转换次数,所以tran函数的返回值应该在转换的循环里计数,即cnt
  28. printf("%%s %%d ",s,n);
  29. return 0;
  30. }

推荐阅读