此代码的问题在于,在用户在命令行中输入某些文本后,它实际上不会打印任何内容.
代码的目的是接受用户在文件名后通过命令提示符输入的行数.然后用户将输入内容进行反转.该程序应该反转每行的用户输入.
示例输入=大红狗
示例输出=狗红大
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define SIZE 80
char * reverseWords(char *string);
//argc is the count of cmd arguments.
//each command line argument is of type string
int main(int argc, char *argv[]){
//initialize local variables
int i;
int N;
char str[SIZE];
for(i = 1; i <argc; i++)
{
//set N equal to the users number in the command line
N = atoi(argv[i]);
}
if(argc != 2){//2 means that something is in the argument. …Run Code Online (Sandbox Code Playgroud) 我希望用千位分隔符(逗号或空格)输出大数字 - 基本上与如何在3位分组中显示数字但printf在C中使用(GNU,99)相同.
如果printf本身不支持数字分组,我怎么能用类似的东西来实现printf("%s", group_digits(number))呢?
它必须支持负整数,最好还有浮点数.
我正在尝试使用函数strrev()来反转字符串.我知道strrev返回一个指向反转字符串的指针,因此我只是初始化一个已经分配的字符串,其大小与原始字符串相同,并返回strrev函数.显然,这不是正确的方法,我在该行中得到"不兼容的类型"错误.
这是代码:
int ispalindrome(int n)
{
char s[10], sr[10];
itoa(n, s, 10);
printf("%s", s);
sr = strrev(s);
printf("\nReverse: %s", sr);
if(strcmp(s, sr) == 0)
return 1;
else
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我正在探索C++代码cstring内部的工作.常用的功能之一是.strrev()
但我发现在Mac和Linux上这个函数被认为是未定义的,即使我包含头文件<cstring>或<string.h>.
但是,该功能在Windows上运行正常.
(我知道我可以自己定义函数,因为此处提供的解决方案在Linux上不可用)
这可能是一个非常天真的问题,但不是不同平台上的头文件的定义应该是相同的吗?或者每个平台都有不同的头文件定义?
另一个奇怪的事情是我strrev()在<cstring>头文件的描述中没有找到(cstring头文件描述),但是如果我在Windows上没有包含这个头文件我得到一个错误,当我包含它时错误就解决了.