c - C、将字符串分成两半
问题描述
我正在尝试编写一个函数将字符串分成两半,但在初始输入后它不输出任何内容。我的目标是扫描一年并保存前两个数字和最后两个数字。这是代码:
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char scan_year2() {
char year_number;
scanf("%s", year_number);
return year_number;
return 0;
}
// Function to print n equal parts of str
void divideString(char *str, int n) {
int str_size = strlen(str);
int i;
int part_size;
if (str_size % n != 0) {
printf("Invalid Input: String size");
printf(" is not divisible by n");
return;
}
part_size = str_size / 2;
for (i = 0; i < str_size; i++) {
if (i % part_size == 0)
printf("\n");
printf("%s", str[i]);
}
}
int main() {
char year_number;
scan_year2();
char str = year_number;
divideString(str, 2);
getchar();
return 0;
}
解决方案
不要忽略编译器警告,它一定是在向你抱怨这个
char scan_year2() {
char year_number;
scanf("%s", year_number);
return year_number;
return 0;
}
您尝试返回两次。
还
part_size = str_size / 2;
for (i = 0; i < str_size; i++) {
if (i % part_size == 0)
printf("\n");
printf("%s", str[i]);
}
不会给你正确的输出。您每次都在输出字符串。IE 如果 str = "1923" 那么你会得到
1923923
232
你应该做
part_size = str_size / 2;
for (i = 0; i < str_size; i++) {
if (i % part_size == 0)
printf("\n");
printf("%c", str[i]);
}
一次只输出一个字符
推荐阅读
- c# - 使用 Bootstrap-Select 时,Bootstrap 下拉菜单需要 popperJs
- python-3.x - 从 2 个面板显示变量值时出错
- java - mdbcontext.setRollbacksOnly() 清除使用 @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) 注释的 ejb 方法完成的插入
- google-chrome - 如何在无头服务器中使用 Chrome 保存 URL?
- javascript - 如何在通过 For 循环访问放置在数组数据库中的对象的属性时修复第 21 行的语法错误以与 If Else 进行比较?
- jquery - 菜单在移动平台上无法正常工作
- java - 修剪冗余数据
- python - 从字符串转换整数数据类型
- java - 获取被点击的URL模板
- python - 使用 DEBUG=False 将我的 Django 网站部署到 Heroku 不起作用