2017-02-28 98 views
-4

所以我有这个“程序”在python3中增加3个字符串,但中间部分x次。但我决定选择C作为我的关于Python 3 做一些简单的东西后的第一语言现在,这是它的外观在Python:在C程序中打开一个简单的python“程序”!

def printWord(begin, mid, end, r): 
    print(begin, end="") 
    for i in range(r+1): 
     print(mid, end="") 
    print(end) 
begin = input("Enter your beginning.\t") 
mid =input("Enter your middle.\t") 
end = input("Enter your ending.\t") 
r = int(input("How many times?\t")) 

printWord(begin, mid, end, r) 

所以此工程和每一件事情就是爽!

现在C:

#include <stdio.h> 
#include <stdlib.h> 

int makeWord(char begin[], char mid[], char end[], int r) 
{ 
    int i; 
    printf("%s", begin); 
    for(i=0;i<=r;i++){ 
     printf("%s", mid); 
    } 
    printf("%s", end); 
    return 0; 
} 

int main() 
{ 
    int r; 
    char begin[3], mid[2], end[3]; 
    printf("Enter the beginning!\t"); 
    scanf("%s", begin); 
    printf("Enter the middle!\t"); 
    scanf("%s", mid); 
    printf("Enter the ending!\t"); 
    scanf("%s", end); 
    printf("How many times?\t"); 
    scanf("%d", r); 

    makeWord(begin, mid, end, r); 

    return 0; 
} 

但是这一次停止

现在我的问题为什么? 感谢您的回答

+1

'scanf(“%d”,&r);' –

+2

Lol,python-hammered:d –

+1

注意'begin'和'end'只能容纳2个字符加上null结束符,'mid'只能容纳1个字符。因为你不能控制用户输入多少字符,所以这个应用程序很容易发生缓冲区溢出和崩溃。 – Havenard

回答

1

您错了使用scanf。当你传递变量本身时,需要指针作为目标变量 - 在线查看文档。

这会导致您的所有变量未初始化并包含垃圾值 - 因此使用它们是因为未定义的行为